目录:
sys 模块提供了与 Python 解释器及其环境交互的功能,允许开发者访问解释器维护的变量,并与解释器进行深度交互。
sys.argv 是一个列表对象,存储命令行调用 Python 脚本时提供的参数。列表的第一个元素是脚本名称,后续元素是传入的参数。
import sys
# 打印所有命令行参数
print("脚本名称:", sys.argv) # ['./test.py', 'aa', 'bb', 'cc']
print("参数列表:", sys.argv[1:]) # ['aa', 'bb', 'cc']
print("参数总数:", len(sys.argv) - 1) # 3
# 遍历参数
for i, arg in enumerate(sys.argv):
print(f"参数{i}: {arg}")
示例:
$ python3 test.py aa bb cc
sys.platform 提供当前执行环境的平台信息,如 ‘win32’ 表示 Windows 系统,’linux’ 表示 Linux 系统,’darwin’ 表示 MacOS 系统。
import sys
platform = sys.platform
print(f"当前平台: {platform}")
if platform == 'win32':
print("运行在Windows系统")
elif platform == 'linux':
print("运行在Linux系统")
elif platform == 'darwin':
print("运行在macOS系统")
sys.path 是一个字符串列表,指定了 Python 搜索模块的路径。程序启动时从环境变量初始化,第一个元素是调用解释器的脚本所在路径。
import sys
# 查看当前搜索路径
print("模块搜索路径:")
for path in sys.path:
print(f" {path}")
# 添加自定义路径
sys.path.append('/my/custom/module/path')
sys.path.insert(0, '/another/path') # 插入到最前面
# 查看当前搜索路径
print("模块搜索路径:")
for path in sys.path:
print(f" {path}")
print() 函数默认将输出写入标准输出(sys.stdout),如下示例,可以将文件对象赋值给 sys.stdout,这样 print() 输出就会写入文件中。记得保存原值以便恢复。
import sys
# 重定向标准输出到文件
original_stdout = sys.stdout
with open('output.log', 'w') as f:
sys.stdout = f
print("这条消息会写入文件")
print("不会显示在终端")
sys.stdout = original_stdout # 恢复原状
# 从文件读取输入
with open('input.txt', 'r') as f:
sys.stdin = f
data = input() # 从文件读取而不是键盘
print(f"从文件读取: {data}")
sys.exit() 函数用于终止程序执行,可以指定退出码(0 表示正常退出,非 0 表示异常)。
import sys
def process_data(data):
if not data:
print("错误:数据为空")
sys.exit(1) # 异常退出
# 正常处理数据
print(f"处理数据: {data}")
sys.exit(0) # 正常退出
# 捕获退出
try:
process_data("")
except SystemExit as e:
print(f"程序退出,代码: {e.code}")
sys.version 提供 Python 解释器的版本信息字符串。
import sys
print(f"Python版本: {sys.version}")
↶ 返回首页 ↶