Python标准库-sys模块
sys是Python标准库中非常重要的一个模块,主要用于访问Python解释器本身以及解释器运行环境相关的信息和功能
1. 导入sys
sys属于Python标准库,不需要安装,只需要导入:
1 | import sys |
2. sys.argv:获取命令行参数
sys.argv是一个列表,保存启动Python程序时传入的命令行参数
创建test.py:
1 | import sys |
执行:
1 | python test.py hello 123 |
结果:
1 | ['test.py', 'hello', '123'] |
所有命令行参数默认都是字符串,所以如果需要进行数值计算则需要手动转换类型
3. sys.path:模块搜索路径
sys.path是一个列表,表示Python执行import时,会去哪些目录寻找模块
1 | sys.path |
可以通过列表自带的insert()函数将目标目录放入搜索列表:
1 | import sys |
流程:
1 | 原来: |
常与pathlib库一同使用,可将项目根目录放入模块搜索路径:
1 | from pathlib import Path |
5. sys.modules:已经导入的模块
sys.modules是一个字典:
1 | sys.modules |
例子:
1 | import sys |
输出:
1 | <module 'math' (built-in)> |
如果出现多次import math,则会因为sys.modules中已经存在import math所以不会再次初始化
6. sys.exit():退出程序
函数签名可以简单理解为:
1 | sys.exit(status=None) |
例子:
1 | import sys |
输出:
1 | 开始 |
也可以:
1 | sys.exit(0) |
通常情况下,0表示正常退出,非0表示异常退出
例如:
1 | if config_error: |
sys.exit()本质上并不是强制杀死Python进程,而是:
1 | raise SystemExit |
因此:
1 | try: |
则finally中的内容仍会进行
7. 目前只写了几个常用的,别的什么时候用到什么时候补充
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Supzj!