2025-03-09
编程
00
请注意,本文编写于 50 天前,最后修改于 50 天前,其中某些信息可能已经过时。

目录

常见功能
1. 访问命令行参数 (sys.argv)
2. 退出程序 (sys.exit())
3. 获取 Python 版本 (sys.version)
4. 获取 Python 解释器路径 (sys.executable)
5. 修改模块搜索路径 (sys.path)
6. 获取系统平台信息 (sys.platform)
7. 获取最大递归深度 (sys.getrecursionlimit())
8. 读取标准输入 (sys.stdin.read())
9. 修改标准输出 (sys.stdout)
总结

sys 提供了与 Python 解释器交互的功能,常用于处理命令行参数、修改模块搜索路径、控制标准输入输出等。

常见功能

1. 访问命令行参数 (sys.argv)

sys.argv 是一个列表,存储 Python 脚本运行时的命令行参数:

python
import sys print("脚本名称:", sys.argv[0]) # sys.argv[0] 是脚本文件名 if len(sys.argv) > 1: print("传入的参数:", sys.argv[1:])

运行示例:

sh
python script.py arg1 arg2

输出:

脚本名称: script.py 传入的参数: ['arg1', 'arg2']

2. 退出程序 (sys.exit())

可以用 sys.exit(code) 退出 Python 程序,code=0 代表正常退出,非零表示异常:

python
import sys print("程序开始") sys.exit(0) # 退出程序 print("这行不会执行")

3. 获取 Python 版本 (sys.version)

python
import sys print("Python 版本:", sys.version) print("Python 版本信息:", sys.version_info) # 以元组形式存储详细版本信息

输出示例:

Python 版本: 3.10.6 (main, Aug 3 2022, 16:00:00) [GCC 9.4.0] Python 版本信息: sys.version_info(major=3, minor=10, micro=6, releaselevel='final', serial=0)

4. 获取 Python 解释器路径 (sys.executable)

python
import sys print("Python 解释器路径:", sys.executable)

输出示例:

Python 解释器路径: /usr/bin/python3

5. 修改模块搜索路径 (sys.path)

sys.path 是一个列表,包含 Python 解释器查找模块的目录:

python
import sys print("默认的模块搜索路径:", sys.path) # 添加自定义路径 sys.path.append('/my/custom/path') print("修改后的模块搜索路径:", sys.path)

6. 获取系统平台信息 (sys.platform)

python
import sys print("当前操作系统:", sys.platform)

可能的输出:

  • Windows: "win32"
  • macOS: "darwin"
  • Linux: "linux"

7. 获取最大递归深度 (sys.getrecursionlimit())

Python 默认的最大递归深度约为 1000,可以修改:

python
import sys print("默认递归深度:", sys.getrecursionlimit()) sys.setrecursionlimit(2000) # 修改递归深度 print("修改后的递归深度:", sys.getrecursionlimit())

8. 读取标准输入 (sys.stdin.read())

python
import sys print("请输入一些内容:") data = sys.stdin.read() print("你输入的是:", data)

这个适用于从终端或管道输入数据,比如:

sh
echo "Hello, World!" | python script.py

9. 修改标准输出 (sys.stdout)

可以重定向 sys.stdout,比如把 print 结果写入文件:

python
import sys with open("output.txt", "w") as f: sys.stdout = f print("这句话会被写入文件,而不会出现在终端") sys.stdout = sys.__stdout__ # 恢复标准输出 print("正常输出到终端")

总结

方法作用
sys.argv获取命令行参数
sys.exit(code)退出程序
sys.version获取 Python 版本
sys.executable获取 Python 解释器路径
sys.platform获取操作系统类型
sys.path获取/修改模块搜索路径
sys.getrecursionlimit()获取最大递归深度
sys.setrecursionlimit(n)设置最大递归深度
sys.stdin.read()读取标准输入
sys.stdout修改标准输出