Python Sys 模块

sys 模块可以访问 Python 运行时细节,例如命令行参数、导入路径和当前解释器版本。

import sys

当代码需要直接和 Python 解释器交互,而不只是和应用对象打交道时,就可以使用 sys

命令行参数

sys.argv 是传递给当前脚本的参数列表。

import sys

sys.argv = ['main.py', '--debug', 'app']
print(sys.argv[0])
print(sys.argv[1:])
main.py
['--debug', 'app']

对于真正的命令行应用,建议使用 argparse。它基于同样的思路,但还提供了校验和帮助信息。

Python 版本

import sys

print(sys.version_info.major)
print(sys.version_info.minor)
3
14

导入搜索路径

sys.path 控制 Python 查找模块的位置。

import sys

print(type(sys.path).__name__)
print(len(sys.path) > 0)
list
True

sys.path 的前几项通常包含当前项目,所以本地模块可以被导入。

标准输入和输出

sys.stdinsys.stdoutsys.stderr 是解释器使用的类文件对象。

import sys

print(sys.stdout.writable())
print(sys.stderr.writable())
True
True

退出程序

import sys

try:
    sys.exit(0)
except SystemExit as exc:
    print(exc.code)
0

相关链接