大家好,我是一个工作20多年的老程序员,把自己工作中积累的经验慢慢给大家分享
第二天:sys库——Python解释器的“控制面板”
sys库和os库类似,也是Python自带的核心库,但它更偏向于与Python解释器本身交互,比如获取命令行参数、控制程序退出、查看解释器信息等,在脚本开发中非常实用。
1.sys.argv——获取命令行参数
返回一个列表,其中第一个元素是脚本文件名,后面的元素是运行脚本时传入的参数。
# 保存为script.py import sys print("命令行参数列表:", sys.argv) print("脚本文件名:", sys.argv[0]) if len(sys.argv) > 1: print("第一个参数:", sys.argv[1]) # 运行命令:python script.py hello 123 # 输出: # 命令行参数列表: ['script.py', 'hello', '123'] # 脚本文件名: script.py # 第一个参数: hello |
2.sys.exit([status])——退出程序
让程序立即退出,可选参数status为退出状态码(0表示正常退出,非0表示异常退出)。
import sys print("程序开始") if 5 > 10: # 条件不成立,不执行退出 sys.exit(1) # 异常退出 print("程序结束") # 正常执行,输出此句 # 输出: # 程序开始 # 程序结束 |
3.sys.version——查看Python解释器版本
返回当前使用的Python解释器版本信息字符串。
import sys print("Python版本信息:", sys.version) # 输出类似:3.9.7 (default, Sep 16 2021, 13:09:58) [GCC 7.5.0] |
4.sys.platform——获取操作系统平台
返回当前运行的操作系统平台标识,比如Windows是'win32',Linux是'linux',macOS是'darwin'。
import sys print("操作系统平台:", sys.platform) # Linux系统输出:linux # Windows系统输出:win32 |
5.sys.path——查看模块搜索路径
返回一个列表,包含Python解释器查找模块时的搜索路径,可动态添加自定义路径。
import sys print("模块搜索路径:") for path in sys.path: print(path) # 添加自定义路径(比如当前目录下的modules文件夹) sys.path.append("./modules") print("\n添加后新增的路径:", sys.path[-1]) # 输出:./modules |
6.sys.stdin / sys.stdout——标准输入输出流
sys.stdin对应标准输入(通常是键盘),sys.stdout对应标准输出(通常是屏幕),可用于自定义输入输出。
import sys # 用sys.stdin读取输入(类似input()) print("请输入内容:") content = sys.stdin.readline() # 读取一行输入 print("你输入的是:", content.strip()) # 用sys.stdout输出(类似print()) sys.stdout.write("这是用stdout输出的内容\n") |
7.sys.getsizeof(object)——获取对象占用的内存大小
返回指定对象在内存中占用的字节数,有助于优化内存使用。
import sys a = [1, 2, 3, 4, 5] b = "hello world" print("列表a占用内存:", sys.getsizeof(a), "字节") # 输出类似:104 字节 print("字符串b占用内存:", sys.getsizeof(b), "字节") # 输出类似:54 字节 |
sys库虽然方法不多,但每个都直击Python解释器的核心交互需求,尤其是命令行参数处理、程序退出控制和模块路径管理,在编写实用脚本时几乎离不开它。
如果文章对你有提升,帮忙点赞,分享,关注。非常感谢