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"

  * 布尔类型 - "bool"

  * 迭代器类型

  * 序列类型 --- "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" --- Interpret bytes as packed binary data

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

* 数据类型

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

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

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

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

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

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

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

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

  * "weakref" --- 弱引用

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

  * "copy" --- 浅复制和深复制操作

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

  * "reprlib" --- 替代性 "repr()" 实现

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

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

* 数字和数学模块

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

  * "math" --- 数学函数

  * "cmath" --- 针对复数的数学函数

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

  * "fractions" --- Rational numbers

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

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

* 函数式编程模块

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

  * "functools" —— 高阶函数，以及可调用对象上的操作

  * "operator" --- 标准运算符对应函数

* 文件和目录访问

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

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

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

  * "stat" --- Interpreting "stat()" results

  * "filecmp" --- 文件和目录比较

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

  * "glob" --- Unix style pathname pattern expansion

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

  * "linecache" --- 随机访问文本行

  * "shutil" --- High-level file operations

* 数据持久化

  * "pickle" --- Python object serialization

  * "copyreg" --- 注册 "pickle" 支持函数

  * "shelve" --- Python object persistence

  * "marshal" --- Internal Python object serialization

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

  * "sqlite3" --- DB-API 2.0 interface for SQLite databases

* 数据压缩和存档

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

  * "gzip" --- 对 **gzip** 文件的支持

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

  * "lzma" --- Compression using the LZMA algorithm

  * "zipfile" --- 操作 ZIP 归档文件

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

* 文件格式

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

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

  * "tomllib" --- 解析 TOML 文件

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

  * "plistlib" --- Generate and parse Apple ".plist" files

* 加密服务

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

  * "hmac" --- 用于消息验证的密钥哈希

  * "secrets" --- Generate secure random numbers for managing secrets

* 通用操作系统服务

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

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

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

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

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

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

  * "logging.config" --- Logging configuration

  * "logging.handlers" --- Logging handlers

  * "getpass" --- 可移植的密码输入

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

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

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

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

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

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

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

* 并发执行

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

  * "multiprocessing" --- Process-based parallelism

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

  * "concurrent" 包

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

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

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

  * "queue" --- A synchronized queue class

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

  * "_thread" --- 低层级多线程 API

* 网络和进程间通信

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

  * "socket" --- Low-level networking interface

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

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

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

  * "signal" --- Set handlers for asynchronous events

  * "mmap" --- Memory-mapped file support

* 互联网数据处理

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

  * "json" --- JSON encoder and decoder

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

  * "mimetypes" --- Map filenames to MIME types

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

  * "binascii" --- 在二进制数据和 ASCII 之间进行转换

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

* 结构化标记处理工具

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

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

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

  * XML处理模块

  * "xml.etree.ElementTree" --- The 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" --- Fast XML parsing using Expat

* 互联网协议和支持

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

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

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

  * "urllib.request" --- Extensible library for opening URLs

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

  * "urllib.parse" --- Parse URLs into components

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

  * "urllib.robotparser" ---  用于 robots.txt 的解析器

  * "http" --- HTTP 模块

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

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

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

  * "imaplib" --- IMAP4 protocol client

  * "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 manipulation library

* 多媒体服务

  * "wave" --- Read and write WAV files

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

* 国际化

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

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

* 程序框架

  * "turtle" --- 海龟绘图

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

  * "shlex" --- 简单词法分析

* Tk图形用户界面(GUI)

  * "tkinter" --- Python interface to Tcl/Tk

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

  * "tkinter.font" --- Tkinter 字体包装器

  * Tkinter 对话框

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

  * "tkinter.scrolledtext" --- 流动文本控件

  * "tkinter.dnd" --- Drag and drop support

  * "tkinter.ttk" --- Tk themed widgets

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

  * IDLE

* 开发工具

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

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

  * Python 开发模式

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

  * "unittest" --- Unit testing framework

  * "unittest.mock" --- mock object library

  * "unittest.mock" --- 新手入门

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

  * "test" --- Regression tests package for 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" --- Trace or track Python statement execution

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

* 软件打包和分发

  * "ensurepip" --- 初始设置 "pip" 安装器

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

  * "zipapp" --- 管理可执行的 Python zip 归档文件

* Python 运行时服务

  * "sys" --- System-specific parameters and functions

  * "sys.monitoring" --- Execution event monitoring

  * "sysconfig" --- Provide access to Python's configuration
    information

  * "builtins" --- 内置对象

  * "__main__" --- 最高层级代码环境

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

  * "dataclasses" --- 数据类

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

  * "abc" --- 抽象基类

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

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

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

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

  * "inspect" --- 检查当前对象

  * "site" --- Site-specific configuration hook

* 自定义 Python 解释器

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

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

* 导入模块

  * "zipimport" --- Import modules from Zip archives

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

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

  * "runpy" --- Locating and executing Python modules

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

  * "importlib.resources" -- Package resource reading, opening and
    access

  * "importlib.resources.abc" -- Abstract base classes for resources

  * "importlib.metadata" -- 访问软件包元数据

  * "sys.path" 模块搜索路径的初始化

* Python 语言服务

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

  * "symtable" --- Access to the compiler's symbol tables

  * "token" --- Constants used with Python parse trees

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

  * "tokenize" --- Python 源代码的分词器

  * "tabnanny" --- 检测有歧义的缩进

  * "pyclbr" --- Python module browser support

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

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

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

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

* Windows系统相关模块

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

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

  * "winsound" --- 针对 Windows 的声音播放接口

* Unix 专有服务

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

  * "pwd" --- The password database

  * "grp" --- 组数据库

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

  * "tty" --- Terminal control functions

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

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

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

  * "syslog" --- Unix syslog 库例程

* 模块命令行界面（CLI）

* 被取代的模块

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

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

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

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

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

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

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

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

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

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

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

  * "optparse" --- Parser for command line options

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

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

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

  * "spwd" —— shadow 密码库

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

  * "telnetlib" -- Telnet 客户端

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

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

* 安全考量
