上节提到模块和库是不同的东西,作用也不完全相同。内置模块使用 C语言编写,提供了对系统功能的访问,例如 sys 模块并不在Lib目录下。但在 Lib 目录下可以找到 string.py、uuid.py 等模块,这些模块提供了 Python 内置对字符串、日期、时间、哈希、队列等功能的支持。虽然Python内置模块和标准库并不是同一种东西,但大多数情况下在使用时并没有对这二者进行详细区分。
安装完毕Python 3.7.2后,可用的内置模块和标准库共计 224 个,以下简单介绍常用的 sys 模块和 datetime 模块(库)的基本功能,其他内置模块(库)的相关功能可参看Python文档。本节教程先来介绍 sys 模块。datetime 模块下节介绍。
sys 模块提供了一系列有关 Python 运行环境的变量和函数,其常用属性和方法如表 1 所示。
属性或方法 | 描述 |
---|---|
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
上述代码的运行结果如下所示: