sys模块介绍
sys模块提供访问由解释器使用或维护的变量的接口,并提供了一些函数用来和解释器进行交互,操控python的运行时环境。
1. 常用变量
常用变量 | 说明 | 本机示例 |
---|---|---|
sys.version | 返回python解释器的版本号,当程序需要用指定版本号运行时使用该变量 | 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] |
sys.maxsize | 表示操作系统承载的最大int值 | 2147483647 |
sys.maxunicode | 最大的unicode代码点值的整数 | 2147483647 |
sys.path | 当前脚本的path环境变量,如果没有python就找不到 | |
sys.platform | 返回操作系统平台名称 Windows :win32 Linux : linux Mac : darwin | win32 |
sys.argv | 将python脚本运行时的脚本名以及参数作为一个list,并输出。 可以实现从程序外部向程序内部传递参数的功能 | |
sys.executable | 给出python解释器的可执行二进制文件的绝对路径。 如果python无法检索其可执行文件的真实路径,将返回空字符串或None | C:\Python27\python.exe |
sys.byteorder | 本地字节顺序的指示符 大端(最高有效位优先)返回 big 小端(最低有效位优先)返回 little | little |
sys.version_info | 包含版本号的五个组件的元组:major 、minor 、micro 、releaselevel 、serial | sys.version_info(major=2, minor=7, micro=11, releaselevel=‘final’, serial=0) |
sys.api_version | 解释器的api版本 | 1013 |
sys.stdin sys.stdout sys.stderr | python的标准输入、输出、错误 | <open file ‘’, mode ‘r’ at 0x02BFD020> <open file ‘’, mode ‘w’ at 0x02BFD078> <open file ‘’, mode ‘w’ at 0x02BFD0D0> |
sys.modules | 系统导入的模块字段,key是模块名,value是模块 |
2. 常用方法
常用方法 | 说明 | 本机示例 |
---|---|---|
sys.exit() | 退出程序 正常退出: sys.exit(0) 异常退出: sys.exit(1) | |
sys.modules.keys() | 返回所有已导入的模块名列表 | |
sys.getdefaultencoding() | 返回unicode当前使用的默认字符串编码的名称 | ascii |
sys.getfilesystemencoding() | 返回用于在unicode文件名和字节文件名之间进行转换的编码名称 | mbcs |
sys.getrecursionlimit() | 返回最大递归次数 | 1000 |
sys.setrecursionlimit(num) | 设置最大递归次数 | |
sys.getsizeof(obj) | 获取对象占用的内存大小 | |
sys.getrefcount(obj) | 返回obj的引用计数。返回的计数通常比预期的高一个,因为包含临时引用作为参数 | |
sys.exc_info() | 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息 | (None, None, None) |
sys.getwindowsversion() | 获取windows版本 | |
sys.stdin.readline() | 从标准输入读一行,会读取末尾的换行符 | |
sys.stdout.write() | 向标准输出写入内容 |
sys.getsizeof(obj)
使用示例:
for obj in [int(),float(),list(),tuple(),str(),set(),dict(),object]:
print(str(obj.__class__).ljust(20), sys.getsizeof(obj))
显示结果:
("<type 'int'> ", 12)
("<type 'float'> ", 16)
("<type 'list'> ", 36)
("<type 'tuple'> ", 28)
("<type 'str'> ", 21)
("<type 'set'> ", 116)
("<type 'dict'> ", 140)
("<type 'type'> ", 436)
sys.getrefcount(obj)
使用示例
a=[1,2,3]
b=a
c=a
d=b
print(sys.getrefcount(a)) # 输出5
文章参考:https://blog.csdn.net/yuan2019035055/article/details/122947092