Python 标准库
Python 标准库非常庞大,所提供的组件涉及范围十分广泛。这个库包含了多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。
Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 操作系统,Python 通常会分成一系列的软件包,因此可能需要使用操作系统所提供的包管理工具来获取部分或全部可选组件。
下面我选了一些常用的标准库,这篇文章先初步的认识下它们,知道它们的名字和作用,后面文章会一一对每个库有介绍说。
- 文本处理模块
string — 常见的字符串操作
re — 正则表达式操作
difflib — 计算差异的辅助工具
textwrap — 文本自动换行与填充
unicodedata — Unicode 数据库
stringprep — 因特网字符串预备
readline — GNU readline 接口
rlcompleter — GNU readline 的补全函数
- 时间模块
datetime — 基本的日期和时间类型
calendar — 日历相关函数
- 数字和数学模块
numbers — 数字的抽象基类
math — 数学函数
cmath —关于复数的数学函数
decimal — 十进制定点和浮点运算
fractions — 分数
random — 生成伪随机数
statistics — 数学统计函数
- 文件和目录模块
pathlib — 面向对象的文件系统路径
os.path — 常见路径操作
fileinput — 迭代来自多个输入流的行
stat — 解析 stat() 结果
filecmp — 文件及目录的比较
tempfile — 生成临时文件和目录
glob — Unix 风格路径名模式扩展
fnmatch — Unix 文件名模式匹配
linecache — 随机读写文本行
shutil — 高阶文件操作
macpath — Mac OS 9 路径操作函数
- 数据持久化
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 文件处理
xdrlib — 编码与解码 XDR 数据
plistlib — 生成与解析 Mac OS X .plist 文件
- 加密服务
hashlib — 安全哈希与消息摘要
hmac — 基于密钥的消息验证
secrets — 生成安全随机数字用于管理密码
- 通用操作系统服务
os — 操作系统接口模块
io — 处理流的核心工具
time — 时间的访问和转换
argparse — 命令行选项、参数和子命令解析器
getopt — C-style parser for command line options
logging — Python 的日志记录工具
getpass — 便携式密码输入工具
curses — 终端字符单元显示的处理
platform — 获取底层平台的标识数据
errno — Standard errno system symbols
ctypes — Python 的外部函数库
- 并发执行
threading — 基于线程的并行
multiprocessing — 基于进程的并行
concurrent 包
concurrent.futures — 启动并行任务
subprocess — 子进程管理
sched — 事件调度器
queue — 一个同步的队列类
dummy_threading — 可直接替代 threading 模块。
_thread — 底层多线程 API
_dummy_thread — _thread 的替代模块
- Interprocess Communication and Networking
socket — 底层网络接口
ssl — 套接字对象的TLS/SSL封装
select — Waiting for I/O 完成
selectors — 高级 I/O 复用库
asyncio — Asynchronous I/O, event loop, coroutines and tasks
asyncore — 异步socket处理器
asynchat — 异步 socket 指令/响应 处理器
signal — 设置异步事件处理程序
mmap — 内存映射文件支持
- 互联网数据处理
email — 电子邮件与 MIME 处理包
json — JSON 编码和解码器
mailcap — Mailcap 文件处理
mailbox — Manipulate mailboxes in various formats
mimetypes — Map filenames to MIME types
base64 — Base16, Base32, Base64, Base85 数据编码
binhex — 对binhex4文件进行编码和解码
binascii — 二进制和 ASCII 码互转
quopri — 编码与解码经过 MIME 转码的可打印数据
uu — 对 uuencode 文件进行编码与解码
- 结构化标记处理工具
html — 超文本标记语言支持
html.parser — 简单的 HTML 和 XHTML 解析器
html.entities — HTML 一般实体的定义
XML处理模块
xml.etree.ElementTree — ElementTree XML API
xml.dom — The Document Object Model API
xml.dom.minidom — Minimal DOM implementation
xml.dom.pulldom — Support for building partial DOM trees
xml.sax — Support for SAX2 parsers
xml.sax.handler — Base classes for SAX handlers
xml.sax.saxutils — SAX 工具集
xml.sax.xmlreader — Interface for XML parsers
xml.parsers.expat — Fast XML parsing using Expat
- 互联网协议和支持
webbrowser — 方便的Web浏览器控制器
cgi — Common Gateway Interface support
cgitb — 用于 CGI 脚本的回溯管理器
wsgiref — WSGI Utilities and Reference Implementation
urllib — URL 处理模块
urllib.request — 用于打开 URL 的可扩展库
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 protocol client
imaplib — IMAP4 protocol client
nntplib — NNTP protocol client
smtplib —SMTP协议客户端
smtpd — SMTP 服务器
telnetlib — Telnet client
uuid — UUID objects according to RFC 4122
socketserver — A framework for network servers
http.server — HTTP 服务器
http.cookies — HTTP状态管理
http.cookiejar — HTTP 客户端的 Cookie 处理
xmlrpc — XMLRPC 服务端与客户端模块
xmlrpc.client — XML-RPC client access
xmlrpc.server — Basic XML-RPC servers
ipaddress — IPv4/IPv6 manipulation library
- 多媒体服务
audioop — Manipulate raw audio data
aifc — Read and write AIFF and AIFC files
sunau — 读写 Sun AU 文件
wave — 读写WAV格式文件
chunk — Read IFF chunked data
colorsys — 颜色系统间的转换
imghdr — 推测图像类型
sndhdr — 推测声音文件的类型
ossaudiodev — Access to OSS-compatible audio devices
- Tk图形用户界面(GUI)
tkinter — Tcl/Tk的Python接口
tkinter.ttk — Tk主题小部件
tkinter.tix — Extension widgets for Tk
tkinter.scrolledtext — 滚动文字控件