前言
sys是Python的一个标准库,提供了一些与Python解释器和系统交互的功能。它包含了一些与系统相关的参数和函数,可以用于访问解释器和操作系统的各种信息。
sys.argv
sys.argv是一个包含命令行参数的列表。列表的第一个元素是脚本的名称,后面的元素是命令行参数。例如,假设我们有一个名为my_script.py的脚本,调用方式为python my_script.py arg1 arg2 arg3,那么sys.argv的值将为[‘my_script.py’, ‘arg1’, ‘arg2’, ‘arg3’]。
import sys
# 输出命令行参数
print("命令行参数为:", sys.argv)
# 输出脚本名称
print("脚本名称为:", sys.argv[0])
# 输出命令行参数
for arg in sys.argv[1:]:
print("命令行参数为:", arg)
sys.exit()
sys.exit()函数用于退出程序。如果指定了参数,那么参数将作为退出状态码返回给操作系统。默认情况下,退出状态码为0,表示程序正常结束。非零状态码表示程序出现了异常或错误。
import sys
def main():
# 业务逻辑
result = 1 + 2
print("计算结果为:", result)
# 退出程序
sys.exit(0)
if __name__ == "__main__":
main()
sys.platform
sys.platform返回当前操作系统的名称。例如,如果当前操作系统是Windows,那么sys.platform的值将为’win32’。
import sys
if sys.platform == "win32":
print("当前操作系统是Windows")
elif sys.platform == "linux":
print("当前操作系统是Linux")
else:
print("当前操作系统是其他操作系统")
sys.getsizeof()
sys.getsizeof()函数用于返回对象占用的内存大小,以字节为单位。
import sys
my_list = [1, 2, 3, 4, 5]
print("my_list占用的内存大小为:", sys.getsizeof(my_list))
sys.stdin、sys.stdout、sys.stder
sys.stdin、sys.stdout、sys.stder分别表示标准输入、标准输出和标准错误输出流。我们可以使用这些变量来读取用户的输入、输出信息和错误信息。
import sys
# 读取用户的输入
user_input = sys.stdin.readline()
# 输出信息到标准输出流
sys.stdout.write("Hello, World!\n")
sys.stdout.write(user_input)
# 输出错误信息到标准错误输出流
sys.stderr.write("Error: Something went wrong!\n")
sys.path
sys.path是一个包含Python解释器搜索模块的路径列表。我们可以使用sys.path来查找模块或者添加自定义的模块搜索路径。
import sys
# 打印Python解释器搜索模块的路径列表
print(sys.path)
# 添加自定义的模块搜索路径
sys.path.append("/path/to/my/module")
sys.sys.version和sys.version_info
sys.version和sys.version_info分别表示Python解释器的版本和版本信息。
import sys
# 打印Python解释器的版本信息
print("Python版本号:", sys.version)
# 打印Python解释器的版本信息元组
print("Python版本信息:", sys.version_info)
sys.exc_info()
sys.exc_info()函数返回当前异常的类型、值和跟踪信息。通常情况下,我们使用try…except语句来处理异常,但有时候我们需要获取当前异常的详细信息,以便进行更加精细的处理。
import sys
try:
# 代码块,可能会抛出异常
result = 1 / 0
except:
# 获取当前异常的信息
exc_type, exc_value, exc_traceback = sys.exc_info()
# 输出异常信息
print("异常类型:", exc_type)
print("异常值:", exc_value)
print("跟踪信息:", exc_traceback)
在Python中,可以使用input()函数从标准输入流中读取用户的输入,使用print()函数将输出信息输出到标准输出流,使用raise语句将错误信息输出到标准错误输出流。这些函数和语句都使用了sys.stdin、sys.stdout和sys.stderr变量。
import sys
try:
# 读取用户输入的数字
num = int(input("请输入一个正整数:"))
# 判断数字是否大于10
if num > 10:
raise ValueError("数字不能大于10!")
# 输出结果
print("您输入的数字是:", num)
except ValueError as e:
# 输出错误信息到标准错误输出流
sys.stderr.write(str(e) + "\n")
sys.setrecursionlimit(limit)
sys.setrecursionlimit(limit)函数用于设置递归深度的限制。在Python中,递归的深度是有限制的,默认情况下,递归深度的限制是1000。如果递归的深度超过了这个限制,将会引发RecursionError异常。
import sys
# 设置递归深度的限制为10000
sys.setrecursionlimit(10000)
# 递归函数
def recursive_function(n):
if n <= 0:
return
else:
recursive_function(n - 1)
# 调用递归函数
recursive_function(9999)