Python 装完就自带一整套工具箱,下面按功能把标准库分好类,再把高频分类的模块清单一次列清
标准库按用途大致分为这些类:
文本 二进制数据 数据类型 数学 函数式编程 文件与目录 持久化 压缩 文件格式化 加密 操作系统工具 并发 进程间通信
「文件格式化、加密、操作系统工具、并发、进程间通信」这 5 类的模块清单,其余分类先占个位置,按需再深挖。
文件格式化
CSV、配置文件、plist 这些格式,标准库都有现成模块:
| 模块 | 说明 |
|---|---|
| csv | 读写 CSV 文件 |
| configparser | 配置文件解析器 |
| netrc | netrc 文件处理器 |
| xdrlib | XDR 数据编码与解码 |
| plistlib | 生成和解析 Mac OS X .plist 文件 |
加密
散列与消息认证,标准库给的就是这两个模块:
| 模块 | 说明 |
|---|---|
| hashlib | 安全散列与消息摘要 |
| hmac | 针对消息认证的键散列 |
操作系统工具
这一类的模块最多,从进程、时间一路到终端处理都在这一组:
| 模块 | 说明 |
|---|---|
| os | 多方面的操作系统接口 |
| io | 流核心工具 |
| time | 时间的查询与转化 |
| argparse | 命令行选项、参数和子命令的解析器 |
| optparse | 命令行选项解析器 |
| getopt | C 风格的命令行选项解析器 |
| logging | Python 日志工具 |
| logging.config | 日志配置 |
| logging.handlers | 日志处理器 |
| getpass | 简易密码输入 |
| curses | 字符显示的终端处理 |
| curses.textpad | curses 程序的文本输入域 |
| curses.ascii | ASCII 字符集工具 |
| curses.panel | curses 的控件栈扩展 |
| platform | 访问底层平台的标识数据 |
| errno | 标准错误记号 |
| ctypes | Python 外部函数库 |
命令行参数解析用 argparse,最小可跑的例子就够说明问题:
python
import argparse
parser = argparse.ArgumentParser(description="打个招呼")
parser.add_argument("-n", "--name", default="world")
args = parser.parse_args()
print(f"hello, {args.name}")
bash
python demo.py --name python
# 预期输出: hello, python
⚠️ 坑:模块名是 argparse 和 optparse,结尾没有 r。写成 argparser、optparser 会直接报 ImportError。
并发
线程、进程、调度、队列,全在并发这一组:
| 模块 | 说明 |
|---|---|
| threading | 基于线程的并行 |
| multiprocessing | 基于进程的并行 |
| concurrent | 并发包 |
| concurrent.futures | 启动并行任务 |
| subprocess | 子进程管理 |
| sched | 事件调度 |
| queue | 同步队列 |
| select | 等待 I/O 完成 |
| dummy_threading | threading 模块的替代(当 _thread 不可用时) |
| _thread | 底层的线程 API(threading 基于其上) |
| _dummy_thread | _thread 模块的替代(当 _thread 不可用时) |
进程间通信
从底层套接字到内存映射,网络相关的模块如下:
| 模块 | 说明 |
|---|---|
| socket | 底层网络接口 |
| ssl | socket 对象的 TLS/SSL 填充器 |
| asyncore | 异步套接字处理器 |
| asynchat | 异步套接字命令/响应处理器 |
| signal | 异步事务信号处理器 |
| mmap | 内存映射文件支持 |