Python 標準函式庫 (Standard Library)
************************************

Python 語言參考手冊說明 Python 這門語言確切的文法及語意，而這份函式庫
參考手冊則是說明隨著 Python 一起發佈的標準函式庫，除此之外，其內容也包
含一些時常出現在 Python 發佈版本中的非必要套件。

Python 的標準函式庫是非常龐大的，其提供了如下所述極多且涵蓋用途極廣的
許多模組。包含一些用 C 語言撰寫，可以操作像是檔案讀寫等系統相關功能的
內建模組，當然也有用 Python 撰寫，並使用標準解法解決許多常見問題的模組
。其中有些模組則是特別針對 Python 的可攜性去設計的，為此特地將一些平台
特殊相依性的功能抽象化成可跨平台的 API。

Python 的 Windows 安裝檔基本上包含整個標準函式庫，且通常也包含許多附加
的組件；而在類 Unix 作業系統方面，Python 通常是以一系列的套件被安裝，
因此對於某些或全部的可選組件，可能都必須使用該作業系統提供的套件管理工
具來安裝。

在標準函式庫之外，還有成千上萬且不斷增加的組件（從個別的程式、模組、套
件到完整的應用程式開發框架），可以從 Python 套件索引 (Python Package
Index) 中取得。

* 簡介

  * 可用性之註釋

* 內建函式

* 內建常數

  * 由 "site" module（模組）所添增的常數

* 內建型別

  * 真值檢測

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

  * 比较运算

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

  * 迭代器类型

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

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

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

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

  * 映射类型 --- "dict"

  * 上下文管理器类型

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

  * 其他内置类型

  * 特殊属性

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

* 內建的例外

  * 异常上下文

  * 繼承自內建的例外

  * 基类

  * 具体异常

  * 警告

  * 异常层次结构

* 文本處理 (Text Processing) 服務

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

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

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

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

  * "unicodedata" --- Unicode 数据库

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

  * "readline" --- GNU readline 接口

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

* 二进制数据服务

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

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

* 資料型別

  * "datetime" --- 日期與時間的基本型別

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

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

  * "collections" --- 容器資料型態

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

  * "heapq" --- 堆積佇列 (heap queue) 演算法

  * "bisect" --- 陣列二分演算法 (Array bisection algorithm)

  * "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 的外部函数库

* 並行執行 (Concurrent Execution)

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

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

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

  * "concurrent" 套件

  * "concurrent.futures" -- 啟動平行任務

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

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

  * "queue" --- 同步佇列 (queue) class（類別）

  * "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" --- 用來開啟 URLs 的可擴充函式庫

  * "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的程式碼轉成 Python 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 bytecode的反組譯器

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

* MS 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" --- 非同步 socket 指令/回應處理函式

  * "asyncore" --- 非同步 socket 處理函式

  * "audioop" --- 操作原始聲音檔案

  * "cgi" --- 通用閘道器介面支援

  * "cgitb" --- CGI 腳本的回溯 (traceback) 管理程式

  * "chunk" --- 讀取 IFF 分塊資料

  * "crypt" --- 用於檢查 Unix 密碼的函式

  * "imghdr" --- 推測圖片種類

  * "imp" —— 由代码内部访问 *import* 。

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

  * "msilib" --- 讀寫 Microsoft Installer 檔案

  * "nis" --- Sun NIS (Yellow Pages) 介面

  * "nntplib" --- NNTP 協定客戶端

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

  * "ossaudiodev" --- 對 OSS 相容聲音裝置的存取

  * "pipes" --- shell pipelines 介面

  * "smtpd" --- SMTP 伺服器

  * "sndhdr" --- 判定聲音檔案的型別

  * "spwd" --- shadow 密碼資料庫

  * "sunau" --- 讀寫 Sun AU 檔案

  * "telnetlib" --- Telnet 客戶端

  * "xdrlib" --- uuencode 檔案的編碼與解碼

  * "xdrlib" --- XDR 資料的編碼與解碼

* 安全考量
