pythonSTL---sys

sys 是 Python 标准库中的一个内置模块,它提供了许多与 Python 解释器和系统环境进行交互的功能。

1. 导入 sys 模块

在使用 sys 库的功能之前,需要先导入它:

import sys

2. 命令行参数 (sys.argv)

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

import sys

# 打印脚本名称
print(f"脚本名称: {sys.argv[0]}")

# 打印所有命令行参数
for i, arg in enumerate(sys.argv):
    print(f"参数 {i}: {arg}")

假设将上述代码保存为 test.py,在命令行中运行 python test.py arg1 arg2,输出结果将显示脚本名称和传递的参数。

3. Python 解释器信息

3.1 sys.version

sys.version 是一个字符串,包含了 Python 解释器的版本信息,如 Python 版本号、编译信息等。

import sys
print(sys.version)
3.2 sys.version_info

sys.version_info 是一个 namedtuple,包含了 Python 版本的主要信息,如主版本号、次版本号、微版本号等。

import sys
print(sys.version_info)
print(f"主版本号: {sys.version_info.major}")
print(f"次版本号: {sys.version_info.minor}")

4. 系统路径 (sys.path)

sys.path 是一个包含模块搜索路径的列表。Python 在导入模块时,会按照这个列表中的路径顺序进行搜索。

import sys

# 打印系统路径
for path in sys.path:
    print(path)

# 可以动态添加路径
sys.path.append('/path/to/your/module')

5. 退出 Python 解释器 (sys.exit())

sys.exit() 函数用于退出 Python 解释器。可以传递一个整数参数作为退出状态码,默认状态码为 0 表示正常退出。

import sys

try:
    # 一些代码逻辑
    result = 1 / 0  # 模拟异常
except ZeroDivisionError:
    print("发生除零错误,程序退出")
    sys.exit(1)  # 以状态码 1 退出

6. 标准输入、输出和错误流

sys 模块提供了对标准输入 (sys.stdin)、标准输出 (sys.stdout) 和标准错误 (sys.stderr) 的访问。

6.1 标准输出重定向
import sys

# 保存原始的标准输出
original_stdout = sys.stdout

# 打开一个文件以写入模式
with open('output.txt', 'w') as f:
    # 将标准输出重定向到文件
    sys.stdout = f
    print("这行文本将被写入文件")

# 恢复标准输出
sys.stdout = original_stdout
print("这行文本将显示在控制台")
6.2 标准输入读取
import sys

# 从标准输入读取一行
line = sys.stdin.readline()
print(f"你输入的内容是: {line.strip()}")

7. 递归深度限制 (sys.getrecursionlimit()sys.setrecursionlimit())

Python 解释器对递归调用的深度有一个默认限制,以防止无限递归导致栈溢出。可以使用 sys.getrecursionlimit() 获取当前的递归深度限制,使用 sys.setrecursionlimit() 设置新的递归深度限制。

import sys

# 获取当前递归深度限制
current_limit = sys.getrecursionlimit()
print(f"当前递归深度限制: {current_limit}")

# 设置新的递归深度限制
sys.setrecursionlimit(2000)
new_limit = sys.getrecursionlimit()
print(f"新的递归深度限制: {new_limit}")

8. 平台信息 (sys.platform)

sys.platform 是一个字符串,用于标识当前 Python 解释器运行的操作系统平台。

import sys

print(f"当前操作系统平台: {sys.platform}")

常见的平台标识符包括 'win32'(Windows)、'linux'(Linux)、'darwin'(macOS)等。

9. 最大整数值 (sys.maxsize)

sys.maxsize 表示当前平台上 Python 解释器所能表示的最大整数值。

import sys

print(f"最大整数值: {sys.maxsize}")

10. 内置模块信息 (sys.builtin_module_names)

sys.builtin_module_names 是一个包含所有内置模块名称的元组。

import sys

print("所有内置模块名称:")
for module_name in sys.builtin_module_names:
    print(module_name)

11. 内存使用信息 (sys.getsizeof())

sys.getsizeof() 函数用于返回对象占用的内存大小(以字节为单位)。

import sys

my_list = [1, 2, 3, 4, 5]
list_size = sys.getsizeof(my_list)
print(f"列表占用的内存大小: {list_size} 字节")

你可能感兴趣的:(python库,服务器,运维,python)