Python 标准库
*************

Python 语言参考手册 描述了 Python 语言的具体语法和语义，这份库参考则介
绍了与 Python 一同发行的标准库。它还描述了通常包含在 Python 发行版中的
一些可选组件。

Python 标准库非常庞大，所提供的组件涉及范围十分广泛，正如以下内容目录
所显示的。这个库包含了多个内置模块 (以 C 编写)，Python 程序员必须依靠
它们来实现系统级功能，例如文件 I/O，此外还有大量以 Python 编写的模块，
提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计，通过
将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植
性。

Windows 版本的 Python 安装程序通常包含整个标准库，往往还包含许多额外组
件。对于类 Unix 操作系统，Python 通常会分成一系列的软件包，因此可能需
要使用操作系统所提供的包管理工具来获取部分或全部可选组件。

在这个标准库以外还存在成千上万并且不断增加的其他组件 (从单独的程序、模
块、软件包直到完整的应用开发框架)，访问 Python 包索引 即可获取这些第三
方包。

* 概述

  * 可用性注释

* 内置函数

* 内置常量

  * 由 "site" 模块添加的常量

* 内置类型

  * 逻辑值检测

  * 布尔运算 --- "and", "or", "not"

  * 比较运算

  * 数字类型 --- "int", "float", "complex"

  * 迭代器类型

  * 序列类型 --- "list", "tuple", "range"

  * 文本序列类型 --- "str"

  * 二进制序列类型 --- "bytes", "bytearray", "memoryview"

  * 集合类型 --- "set", "frozenset"

  * 映射类型 --- "dict"

  * 上下文管理器类型

  * 类型注解的类型 --- *Generic Alias* 、 *Union*

  * 其他内置类型

  * 特殊属性

  * 整数字符串转换长度限制

* 内置异常

  * 异常上下文

  * 从内置异常继承

  * 基类

  * 具体异常

  * 警告

  * 异常层次结构

* 文本处理服务

  * "string" --- 常见的字符串操作

  * "re" --- 正则表达式操作

  * "difflib" --- 计算差异的辅助工具

  * "textwrap" --- 文本自动换行与填充

  * "unicodedata" --- Unicode 数据库

  * "stringprep" --- 因特网字符串预备

  * "readline" --- GNU readline 接口

  * "rlcompleter" --- GNU readline 的补全函数

* 二进制数据服务

  * "struct" --- 将字节串解读为打包的二进制数据

  * "codecs" --- 编解码器注册和相关基类

* 数据类型

  * "datetime" --- 基本日期和时间类型

  * "zoneinfo" --- IANA 时区支持

  * "calendar" --- 日历相关函数

  * "collections" --- 容器数据类型

  * "collections.abc" --- 容器的抽象基类

  * "heapq" --- 堆队列算法

  * "bisect" --- 数组二分查找算法

  * "array" --- 高效的数字数组

  * "weakref" --- 弱引用

  * "types" --- 动态类型创建和内置类型名称

  * "copy" --- 浅层 (shallow) 和深层 (deep) 复制操作

  * "pprint" --- 数据美化输出

  * "reprlib" --- 另一种 "repr()" 实现

  * "enum" --- 对枚举的支持

  * "graphlib" --- 操作类似图的结构的功能

* 数字和数学模块

  * "numbers" --- 数字的抽象基类

  * "math" --- 数学函数

  * "cmath" --- 关于复数的数学函数

  * "decimal" --- 十进制定点和浮点运算

  * "fractions" --- 分数

  * "random" --- 生成伪随机数

  * "statistics" --- 数学统计函数

* 函数式编程模块

  * "itertools" --- 为高效循环而创建迭代器的函数

  * "functools" --- 高阶函数和可调用对象上的操作

  * "operator" --- 标准运算符替代函数

* 文件和目录访问

  * "pathlib" --- 面向对象的文件系统路径

  * "os.path" --- 常用路径操作

  * "fileinput" --- 迭代来自多个输入流的行

  * "stat" --- 解析 "stat()" 结果

  * "filecmp" --- 文件及目录的比较

  * "tempfile" --- 生成临时文件和目录

  * "glob" --- Unix 风格路径名模式扩展

  * "fnmatch" --- Unix 文件名模式匹配

  * "linecache" --- 随机读写文本行

  * "shutil" --- 高阶文件操作

* 数据持久化

  * "pickle" --- Python 对象序列化

  * "copyreg" --- 注册配合 "pickle" 模块使用的函数

  * "shelve" --- Python 对象持久化

  * "marshal" --- 内部 Python 对象序列化

  * "dbm" --- Unix "数据库" 接口

  * "sqlite3" --- SQLite 数据库 DB-API 2.0 接口模块

* 数据压缩和存档

  * "zlib" --- 与 **gzip** 兼容的压缩

  * "gzip" --- 对 **gzip** 格式的支持

  * "bz2" --- 对 **bzip2** 压缩算法的支持

  * "lzma" --- 用 LZMA 算法压缩

  * "zipfile" --- 使用ZIP存档

  * "tarfile" --- 读写tar归档文件

* 文件格式

  * "csv" --- CSV 文件读写

  * "configparser" --- 配置文件解析器

  * "netrc" --- netrc 文件处理

  * "plistlib" --- 生成与解析 Apple ".plist" 文件

* 加密服务

  * "hashlib" --- 安全哈希与消息摘要

  * "hmac" --- 基于密钥的消息验证

  * "secrets" --- 生成管理密码的安全随机数

* 通用操作系统服务

  * "os" --- 多种操作系统接口

  * "io" --- 处理流的核心工具

  * "time" --- 时间的访问和转换

  * "argparse" --- 命令行选项、参数和子命令解析器

  * "getopt" --- C 风格的命令行选项解析器

  * "logging" --- Python 的日志记录工具

  * "logging.config" --- 日志记录配置

  * "logging.handlers" --- 日志处理程序

  * "getpass" --- 便携式密码输入工具

  * "curses" --- 终端字符单元显示的处理

  * "curses.textpad" --- 用于 curses 程序的文本输入控件

  * "curses.ascii" --- 用于 ASCII 字符的工具

  * "curses.panel" --- curses 的面板栈扩展

  * "platform" ---  获取底层平台的标识数据

  * "errno" --- 标准 errno 系统符号

  * "ctypes" --- Python 的外部函数库

* 并发执行

  * "threading" --- 基于线程的并行

  * "multiprocessing" --- 基于进程的并行

  * "multiprocessing.shared_memory" --- 可跨进程直接访问的共享内存

  * "concurrent" 包

  * "concurrent.futures" --- 启动并行任务

  * "subprocess" --- 子进程管理

  * "sched" --- 事件调度器

  * "queue" --- 一个同步的队列类

  * "contextvars" --- 上下文变量

  * "_thread" --- 底层多线程 API

* 网络和进程间通信

  * "asyncio" --- 异步 I/O

  * "socket" --- 底层网络接口

  * "ssl" --- 套接字对象的 TLS/SSL 包装器

  * "select" --- 等待 I/O 完成

  * "selectors" --- 高级 I/O 复用库

  * "signal" --- 设置异步事件处理程序

  * "mmap" --- 内存映射文件支持

* 互联网数据处理

  * "email" --- 电子邮件与 MIME 处理包

  * "json" --- JSON 编码和解码器

  * "mailbox" --- 操作多种格式的邮箱

  * "mimetypes" --- 映射文件名到 MIME 类型

  * "base64" --- Base16, Base32, Base64, Base85 数据编码

  * "binhex" --- 对binhex4文件进行编码和解码

  * "binascii" --- 二进制和 ASCII 码互转

  * "quopri" --- 编码与解码经过 MIME 转码的可打印数据

* 结构化标记处理工具

  * "html" --- 超文本标记语言支持

  * "html.parser" --- 简单的 HTML 和 XHTML 解析器

  * "html.entities" --- HTML 一般实体的定义

  * XML处理模块

  * "xml.etree.ElementTree" ---  ElementTree XML API

  * "xml.dom" --- 文档对象模型 API

  * "xml.dom.minidom" --- 最小化的 DOM 实现

  * "xml.dom.pulldom" --- 支持构建部分 DOM 树

  * "xml.sax" --- 支持 SAX2 解析器

  * "xml.sax.handler" --- SAX 处理器的基类

  * "xml.sax.saxutils" --- SAX 工具集

  * "xml.sax.xmlreader" --- 用于 XML 解析器的接口

  * "xml.parsers.expat" ---  使用 Expat 的快速 XML 解析

* 互联网协议和支持

  * "webbrowser" --- 方便的 Web 浏览器控制工具

  * "wsgiref" --- WSGI 工具和参考实现

  * "urllib" --- URL 处理模块

  * "urllib.request" --- 用于打开 URL 的可扩展库

  * "urllib.response" --- urllib 使用的 Response 类

  * "urllib.parse"  用于解析 URL

  * "urllib.error" --- urllib.request 引发的异常类

  * "urllib.robotparser" --- robots.txt 语法分析程序

  * "http" --- HTTP 模块

  * "http.client" --- HTTP 协议客户端

  * "ftplib" --- FTP 协议客户端

  * "poplib" --- POP3 协议客户端

  * "imaplib" --- IMAP4 协议客户端

  * "smtplib" --- SMTP 协议客户端

  * "uuid" --- **RFC 4122** 定义的UUID对象

  * "socketserver" --- 用于网络服务器的框架

  * "http.server" --- HTTP 服务器

  * "http.cookies" --- HTTP状态管理

  * "http.cookiejar" —— HTTP 客户端的 Cookie 处理

  * "xmlrpc" --- XMLRPC 服务端与客户端模块

  * "xmlrpc.client" --- XML-RPC 客户端访问

  * "xmlrpc.server" --- 基本 XML-RPC 服务器

  * "ipaddress" --- IPv4/IPv6 操作库

* 多媒体服务

  * "wave" --- 读写WAV格式文件

  * "colorsys" --- 颜色系统间的转换

* 国际化

  * "gettext" --- 多语种国际化服务

  * "locale" --- 国际化服务

* 程序框架

  * "turtle" --- 海龟绘图

  * "cmd" --- 支持面向行的命令解释器

  * "shlex" —— 简单的词法分析

* Tk图形用户界面(GUI)

  * "tkinter" —— Tcl/Tk 的 Python 接口

  * "tkinter.colorchooser" --- 颜色选择对话框

  * "tkinter.font" --- Tkinter 字体封装

  * Tkinter 对话框

  * "tkinter.messagebox" --- Tkinter 消息提示

  * "tkinter.scrolledtext" --- 滚动文字控件

  * "tkinter.dnd" --- 拖放操作支持

  * "tkinter.ttk" --- Tk 风格的控件

  * "tkinter.tix" --- TK扩展包

  * IDLE

* 开发工具

  * "typing" —— 对类型提示的支持

  * "pydoc" --- 文档生成器和在线帮助系统

  * Python 开发模式

  * Python 开发模式的效果

  * ResourceWarning 示例

  * 文件描述符错误示例

  * "doctest" --- 测试交互式的 Python 示例

  * "unittest" --- 单元测试框架

  * "unittest.mock" --- 模拟对象库

  * "unittest.mock" --- 上手指南

  * 2to3 --- 自动化的 Python 2 到 3 代码转写

  * "test" ---  Python 回归测试包

  * "test.support" --- 针对 Python 测试套件的工具

  * "test.support.socket_helper" --- 用于套接字测试的工具

  * "test.support.script_helper" --- 用于 Python 执行测试工具

  * "test.support.bytecode_helper" --- 用于测试正确字节码生成的支持工
    具

  * "test.support.threading_helper" --- 用于线程测试的工具

  * "test.support.os_helper" --- 用于操作系统测试的工具

  * "test.support.import_helper" --- 用于导入测试的工具

  * "test.support.warnings_helper" --- 用于警告测试的工具

* 调试和分析

  * 审计事件表

  * "bdb" --- 调试器框架

  * "faulthandler" —— 转储 Python 的跟踪信息

  * "pdb" --- Python 的调试器

  * Python 性能分析器

  * "timeit" --- 测量小代码片段的执行时间

  * "trace" —— 跟踪 Python 语句的执行

  * "tracemalloc" --- 跟踪内存分配

* 软件打包和分发

  * "distutils" 构建和安装 Python 模块

  * "ensurepip" --- 引导 "pip" 安装器

  * "venv" --- 创建虚拟环境

  * "zipapp" —— 管理可执行的 Python zip 打包文件

* Python 运行时服务

  * "sys" --- 系统相关的形参和函数

  * "sysconfig" —— 提供对 Python 配置信息的访问支持

  * "builtins" --- 内建对象

  * "__main__" ——顶层代码环境

  * "warnings" ——控制警告信息

  * "dataclasses" --- 数据类

  * "contextlib" --- 为 "with"语句上下文提供的工具

  * "abc" --- 抽象基类

  * "atexit" --- 退出处理器

  * "traceback" —— 打印或读取栈回溯信息

  * "__future__" --- Future 语句定义

  * "gc" --- 垃圾回收器接口

  * "inspect" --- 检查对象

  * "site" —— 指定域的配置钩子

* 自定义 Python 解释器

  * "code" --- 解释器基类

  * "codeop" --- 编译Python代码

* 导入模块

  * "zipimport" --- 从 Zip 存档中导入模块

  * "pkgutil" --- 包扩展工具

  * "modulefinder" --- 查找脚本使用的模块

  * "runpy" ——查找并执行 Python  模块

  * "importlib" --- "import" 的实现

  * 使用 "importlib.metadata"

* Python 语言服务

  * "ast" --- 抽象语法树

  * "symtable" ——访问编译器的符号表

  * "token" --- 与Python解析树一起使用的常量

  * "keyword" --- 检验Python关键字

  * "tokenize" --- 对 Python 代码使用的标记解析器

  * "tabnanny" --- 模糊缩进检测

  * "pyclbr" --- Python 模块浏览器支持

  * "py_compile" --- 编译 Python 源文件

  * "compileall" --- 字节编译 Python 库

  * "dis" --- Python 字节码反汇编器

  * "pickletools" --- pickle 开发者工具集

* Windows系统相关模块

  * "msvcrt" --- 来自 MS VC++ 运行时的有用例程

  * "winreg" --- 访问 Windows 注册表

  * "winsound" —— Windows 系统的音频播放接口

* Unix 专有服务

  * "posix" --- 最常见的 POSIX 系统调用

  * "pwd" --- 用户密码数据库

  * "grp" --- 组数据库

  * "termios" --- POSIX 风格的 tty 控制

  * "tty" --- 终端控制功能

  * "pty" --- 伪终端工具

  * "fcntl" —— 系统调用 "fcntl" 和 "ioctl"

  * "resource" --- 资源使用信息

  * Unix syslog 库例程

* 被取代的模块

  * "aifc" --- 读写 AIFF 和 AIFC 文件

  * "asynchat" --- 异步套接字指令/响应处理程序

  * "asyncore" --- 异步套接字处理器

  * "audioop" --- 处理原始音频数据

  * "cgi" --- 通用网关接口支持

  * "cgitb" --- 用于 CGI 脚本的回溯管理器

  * "chunk" --- 读取 IFF 分块数据

  * "crypt" —— 验证 Unix 口令的函数

  * "imghdr" --- 推测图像类型

  * "imp" --- 访问 *import* 内部对象

  * "mailcap" --- Mailcap 文件处理

  * "msilib" --- 读写 Microsoft Installer 文件

  * "nis" --- Sun 的 NIS (黄页) 接口

  * "nntplib" --- NNTP 协议客户端

  * "optparse" --- 命令行选项的解析器

  * "ossaudiodev"  --- 访问兼容OSS的音频设备

  * "pipes" --- 终端管道接口

  * "smtpd" --- SMTP 服务器

  * "sndhdr" --- 推测声音文件的类型

  * "spwd" —— shadow 密码库

  * "sunau" --- 读写 Sun AU 文件

  * "telnetlib" -- Telnet 客户端

  * "uu" --- 对 uuencode 文件进行编码与解码

  * "xdrlib" --- 编码与解码 XDR 数据

* 安全考量
