首页 > 编程笔记 > Python笔记

Python sys模块常用方法

上节提到模块和库是不同的东西,作用也不完全相同。内置模块使用 C语言编写,提供了对系统功能的访问,例如 sys 模块并不在Lib目录下。但在 Lib 目录下可以找到 string.py、uuid.py 等模块,这些模块提供了 Python 内置对字符串、日期、时间、哈希、队列等功能的支持。虽然Python内置模块和标准库并不是同一种东西,但大多数情况下在使用时并没有对这二者进行详细区分。

安装完毕Python 3.7.2后,可用的内置模块和标准库共计 224 个,以下简单介绍常用的 sys 模块和 datetime 模块(库)的基本功能,其他内置模块(库)的相关功能可参看Python文档。本节教程先来介绍 sys 模块。datetime 模块下节介绍。

sys 模块提供了一系列有关 Python 运行环境的变量和函数,其常用属性和方法如表 1 所示。

表 1:sys 模块常用属性和方法
属性或方法 描述
sys.argv 获取命令行参数列表,第一个参数是程序本身
sys.exit(n) 退出 Python 程序,exit(0) 表示正常退出。当参数非 0 时,会引发一个 SystemExit 异常,可以在程序中捕获该异常
sys.version 获取 Python 解释程器的版本信息
sys.maxsize 最大的 Int 值,在 64 位操作系统上是 263-1
sys.path 返回模块的搜索路径,初始化时使用 PYTHONPATH 环境变量的值
sys.platform 返回操作系统平台名称
sys.stdin 输入相关
sys.stdout 输出相关
sys.stderr 错误相关
sys.exc_infd() 返回异常信息三元元组
sys.getdefaultencoding() 获取系统当前编码,默认为 UTF-8
sys.setdefaultencoding() 设置系统的默认编码
sys.getfilesystemencoding() 获取文件系统使用编码方式,默认是 UTF-8
sys.modules 以字典的形式返回所有当前 Python 环境中已经导入的模块
sys.builtin_module_names 返回一个列表,包含所有已经编译到 Python 解释器里的模块的名字
sys.copyright 当前 Python 的版权信息
sys.flags 命令行标识状态信息列表
sys.getrefcount(object) 返回对象的引用数量
sys. getrecursionlimit() 返回 Python 最大递归深度,默认为 1000
sys.getsizeof(object[, default]) 返回对象的大小
sys.getswitchinterval() 返回线程切换时间间隔,默认为0.005秒
sys.setswitchinterval(interval) 设置线程切换的时间间隔,单位为秒
sys. getwindowsversion() 返回当前 Windows 系统的版本信息
sys.hash_info 返回 Python 默认的哈希方法的参数
sys.implementation 当前正在运行的 Python 解释器的具体实现,如 CPython
sys.thread_info 当前线程信息

以下是调用表 1 中部分属性或方法的代码:
import sys
sys.version
sys.platform
sys.getdefaultencoding()
sys.copyright
sys.getwindowsversion()
sys.implementation
上述代码的运行结果如下所示:

>>> import sys
>>> sys.version
'3.7.2rc1 (tags/v3.7.2:9a3ffc0492, Apr 23 2020, 21:39:28) [MSC v.1916 64 bit (AMD64)]'
>>> sys.platform
'win32'
>>> sys.getdefaultencoding()
'utf-8'
>>> sys.copyright
'Copyright (c) 2001-2020 Python Software Foundation.\nAll Rights Reserved.\n\nCopyright (c) 2000 BeOpen.com.\nAll Rights Reserved.\n\nCopyright (c) 1995-2001 Corporation for National Research Initiatives.\nAll Rights Reserved.\n\nCopyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.\nAll Rights Reserved.'
>>> sys.getwindowsversion()
sys.getwindowsversion(major=10, minor=0, build=17763, platform=2, service_pack='')
>>> sys.implementation
namespace(cache_tag='cpython-38', hexversion=50856897, name='cpython', version=sys.version_info(major=3, minor=8, micro=3, releaselevel='candidate', serial=1))

所有教程

优秀文章