sys库学习笔记

sys是Python的标准库,提供了访问解释器和系统信息的功能,如sys.argv用于获取命令行参数,sys.exit用于退出程序,sys.platform检测操作系统,sys.getsizeof测量对象内存大小,以及异常处理和递归深度设置等。
摘要由CSDN通过智能技术生成

前言

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)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值