Python sys 模块

sys 是 Python 标准库中的一个模块,提供了与 Python 解释器及其环境交互的功能。

通过 sys 库,你可以访问与 Python 解释器相关的变量和函数,例如命令行参数、标准输入输出、程序退出等。

导入 sys 库

在使用 sys 库之前,你需要先导入它。导入方式如下:

import sys

实例

import sys

# 列出 os 模块的所有属性和方法
print(dir(os))

sys 库的常用功能

1. 命令行参数

sys.argv 是一个包含命令行参数的列表。sys.argv[0] 是脚本的名称,后续元素是传递给脚本的参数。

示例代码:

实例

import sys

print("脚本名称:", sys.argv[0])
print("参数列表:", sys.argv[1:])

运行方式:

python script.py arg1 arg2

输出结果:

脚本名称: script.py
参数列表: ['arg1', 'arg2']

2. 程序退出

sys.exit() 用于退出程序。你可以传递一个整数作为退出状态码,通常 0 表示成功,非零值表示错误。

示例代码:

实例

import sys

print("程序开始")
sys.exit(0)
print("这行代码不会执行")

3. 标准输入输出

sys.stdinsys.stdoutsys.stderr 分别代表标准输入、标准输出和标准错误流。你可以重定向这些流以实现自定义的输入输出行为。

示例代码:

实例

import sys

# 重定向标准输出到文件
with open('output.txt', 'w') as f:
    sys.stdout = f
    print("这行内容将写入 output.txt")

# 恢复标准输出
sys.stdout = sys.__stdout__
print("这行内容将显示在控制台")

4. Python 版本信息

sys.versionsys.version_info 提供了当前 Python 解释器的版本信息。

示例代码:

实例

import sys

print("Python 版本:", sys.version)
print("版本信息:", sys.version_info)

输出结果:

<code>Python 版本: 3.9.7 (default, Aug 31 2021, 13:28:12) 
[GCC 7.5.0]
版本信息: sys.version_info(major=3, minor=9, micro=7, releaselevel=&#39;final&#39;, serial=0)
</code>

5. 模块搜索路径

sys.path 是一个列表,包含了 Python 解释器在导入模块时搜索的路径。你可以修改这个列表来添加自定义的模块搜索路径。

示例代码:

实例

import sys

print("模块搜索路径:", sys.path)
sys.path.append('/custom/path')
print("更新后的模块搜索路径:", sys.path)

sys 模块常用属性

属性说明
sys.argv命令行参数列表,sys.argv[0] 是脚本名称
sys.pathPython 模块搜索路径(PYTHONPATH
sys.modules已加载模块的字典
sys.platform操作系统平台标识(如 'win32', 'linux', 'darwin'
sys.versionPython 解释器版本信息
sys.executablePython 解释器的绝对路径
sys.stdin标准输入流(文件对象)
sys.stdout标准输出流(文件对象)
sys.stderr标准错误流(文件对象)
sys.byteorder字节序('little''big'
sys.maxsize最大整数值(2**31-12**63-1

sys 模块常用方法

方法说明
sys.exit([status])退出程序,status=0 表示正常退出
sys.getsizeof(obj)返回对象占用的内存字节数
sys.getdefaultencoding()获取默认字符串编码(通常 'utf-8'
sys.setrecursionlimit(limit)设置递归深度限制(默认 1000
sys.getrecursionlimit()获取当前递归深度限制
sys.getrefcount(obj)返回对象的引用计数
sys.exc_info()获取当前异常信息((type, value, traceback)
sys.settrace(tracefunc)设置调试跟踪函数
sys.setprofile(profilefunc)设置性能分析函数