Python 常被形容为「自带电池」(batteries included)——标准库覆盖了从字符串处理到并发、从压缩归档到数据库的绝大多数日常需求,很多第三方包其实只是把标准库包了一层更好用的壳。这一页按用途把常用模块列成表,并标注引入版本与本书对应的讲解章节,方便你在动手前先问一句:这件事标准库能不能直接干?
下表所有模块都在本机 Python 3.14.6 上 import 验证过存在。未标注版本的模块自 Python 3 早期即存在;标「3.11+」这类字样的,低于该版本会 ImportError。
附录 B 标准库常用模块速查
文本与字符串
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
re | 正则表达式匹配与替换 | compile search findall sub | 10.1 |
string | 字符常量与简单模板 | ascii_letters digits Template | 3.1 |
textwrap | 折行、缩进、去缩进 | fill shorten dedent | 10.1 |
unicodedata | 查询 Unicode 字符属性 | name category normalize | 10.2 |
difflib | 序列 / 文本差异比较 | SequenceMatcher unified_diff | 10.3 |
pprint | 结构化数据的可读打印 | pprint pformat | 10.2 |
reprlib | 可限制长度的 repr | repr Repr | — |
codecs | 编解码器注册与流包装 | open encode decode | 10.2 |
locale | 语言区域与编码偏好 | getpreferredencoding | 10.2 |
数据结构
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
collections | 专用容器与有序字典 | deque Counter defaultdict namedtuple | 3.2 |
heapq | 堆队列 / 优先队列算法 | heappush heappop nlargest | 8.1 |
bisect | 有序序列二分查找与插入 | bisect_left insort | 3.2 |
array | 紧凑的同类型数值数组 | array | 18.2 |
enum | 枚举类型与成员 | Enum IntEnum StrEnum auto | 18.1 |
dataclasses | 自动生成方法的类装饰器 | dataclass field | 6.2 |
typing | 静态类型提示工具 | Protocol TypedDict Self override | 9.1 |
types | 动态类型辅助 | MappingProxyType SimpleNamespace | 6.1 |
graphlib | 有向图拓扑排序(3.9+) | TopologicalSorter | — |
weakref | 弱引用,避免循环持有 | ref WeakValueDictionary | 18.2 |
copy | 浅拷贝与深拷贝 | copy deepcopy replace(3.13+) | 3.3 |
函数式与迭代
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
functools | 高阶函数工具 | cache lru_cache partial reduce wraps singledispatch | 4.3 |
itertools | 迭代器构建块 | chain groupby islice batched(3.12+) | 8.1 |
operator | 把运算符变成函数 | itemgetter attrgetter add | 4.3 |
文件与路径
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
pathlib | 面向对象的路径操作 | Path Path.walk(3.12+) | 10.2 |
os / os.path | 操作系统与路径接口 | environ getcwd path.join listdir | 10.2 |
io | 内存中的文本 / 字节流 | StringIO BytesIO | 8.2 |
glob | 按通配符匹配路径 | glob iglob | 10.2 |
fnmatch | 文件名通配符匹配 | fnmatch filter | 10.2 |
tempfile | 临时文件与临时目录 | TemporaryDirectory NamedTemporaryFile | 10.2 |
shutil | 高层文件 / 目录操作 | copy copytree rmtree make_archive | 17.1 |
fileinput | 逐行遍历多个文件 | input files | — |
stat | 解释文件状态位 | S_ISDIR st_mode | — |
日期时间
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
datetime | 日期、时间与时长的运算 | datetime date timedelta | 11.1 |
zoneinfo | IANA 时区数据库(3.9+) | ZoneInfo | 11.1 |
time | 时间戳、计时与休眠 | time perf_counter sleep | 11.1 |
calendar | 日历计算 | month isleap monthrange | 11.1 |
timeit | 小段代码的微基准计时 | timeit repeat | 18.2 |
数据格式与序列化
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
json | JSON 读写 | dumps loads dump load | 10.3 |
csv | CSV 读写 | reader writer DictReader | 10.3 |
tomllib | 只读 TOML 解析(3.11+) | load loads | 10.3 |
configparser | INI 风格配置读写 | ConfigParser | — |
pickle | Python 对象二进制序列化 | dumps loads | 10.3 |
struct | 二进制数据打包 / 解包 | pack unpack | — |
marshal | Python 内部对象序列化 | dumps loads | — |
base64 | Base64 编解码 | b64encode b64decode | — |
xml | XML 解析与生成 | ElementTree | — |
并发与异步
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
threading | 线程与同步原语 | Thread Lock Event | 12.1 |
multiprocessing | 多进程并行 | Process Pool shared_memory | 12.2 |
concurrent.futures | 线程 / 进程池的统一接口 | ThreadPoolExecutor ProcessPoolExecutor as_completed | 12.2 |
asyncio | 异步 I/O 与事件循环 | run TaskGroup(3.11+)timeout(3.11+)gather | 13.1 |
queue | 线程安全队列 | Queue PriorityQueue | 12.1 |
contextvars | 上下文局部变量(3.7+) | ContextVar | 13.3 |
signal | 操作系统信号处理 | signal SIGINT | — |
sched | 通用事件调度器 | scheduler | — |
网络
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
socket | 底层 TCP / UDP 套接字 | socket create_connection | 12.3 |
ssl | TLS / SSL 加密 | SSLContext create_default_context | 12.3 |
http | HTTP 状态码与客户端 / 服务端 | HTTPStatus client server | 16.1 |
urllib | URL 处理与简易请求 | request.urlopen parse | 12.3 |
ipaddress | IPv4 / IPv6 地址与网段 | ip_address ip_network | — |
socketserver | 服务端请求处理框架 | TCPServer | — |
select | I/O 多路复用 | select poll | — |
email | 邮件消息构造与解析 | message_from_string EmailMessage | — |
调试与剖析
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
logging | 分级日志记录 | getLogger basicConfig Handler | 11.2 |
traceback | 异常回溯格式化 | format_exc print_exc | 7.1 |
warnings | 发出与过滤警告 | warn filterwarnings | 7.2 |
pdb | 交互式调试器 | set_trace breakpoint | — |
faulthandler | 崩溃时打印 Python 回溯 | enable | — |
cProfile / profile | 确定性函数级剖析 | Profile run | 18.2 |
pstats | 剖析结果排序与分析 | Stats | 18.2 |
tracemalloc | 追踪内存分配 | start take_snapshot | 18.2 |
gc | 垃圾回收控制 | collect get_objects | 18.2 |
inspect | 运行时自省对象 | signature getmembers | 8.3 |
dis | 字节码反汇编 | dis disassemble | 1.3 |
ast | 抽象语法树 | parse walk | 1.3 |
tokenize | 源码词法分析 | generate_tokens | 1.3 |
py_compile / compileall | 编译为字节码缓存 | compile compileall | 1.3 |
系统与进程
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
sys | 解释器接口 | argv path version exit | 11.3 |
subprocess | 启动与管理子进程 | run Popen | 17.1 |
platform | 平台与解释器信息 | system python_version | 2.2 |
sysconfig | 解释器构建配置 | get_paths get_config_var | 18.3 |
site | 站点包路径初始化 | getsitepackages | 2.1 |
venv | 创建虚拟环境 | EnvBuilder create | 2.1 |
atexit | 解释器退出时的清理钩子 | register | — |
getpass | 隐藏回显的密码输入 | getpass | 11.3 |
argparse | 命令行参数解析 | ArgumentParser add_argument | 11.3 |
resource | 进程资源用量与限制 | getrusage | — |
shlex | shell 风格词法切分与引用 | split quote | 17.1 |
测试与质量
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
unittest | 标准库单元测试框架 | TestCase main | 14.1 |
unittest.mock | 打桩与替换依赖 | Mock MagicMock patch | 14.2 |
doctest | 从文档字符串里跑测试 | testmod run_docstring_examples | 14.1 |
数值、随机与哈希
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
math | 浮点数学函数与常量 | sqrt isclose gcd pi | 3.1 |
cmath | 复数数学函数 | sqrt phase | — |
decimal | 精确十进制算术 | Decimal getcontext | 3.1 |
fractions | 有理数精确运算 | Fraction | — |
statistics | 基础统计量 | mean median stdev | 17.3 |
random | 伪随机数与抽样 | random randint choice shuffle | 17.3 |
secrets | 密码学安全的随机数 | token_hex token_bytes randbelow | — |
hashlib | 哈希摘要 | sha256 blake2b file_digest | — |
hmac | 带密钥的消息认证码 | new compare_digest | — |
uuid | 唯一标识符 | uuid4 UUID | — |
压缩、归档与持久化
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
zlib | DEFLATE 压缩 | compress decompress | 18.3 |
gzip | gzip 文件读写 | open compress | 18.3 |
bz2 | bzip2 压缩 | open compress | 18.3 |
lzma | LZMA / XZ 压缩 | open compress | 18.3 |
compression.zstd | Zstandard 压缩(3.14+,PEP 784) | compress decompress open | 18.3 |
zipfile | ZIP 归档读写 | ZipFile ZipInfo | 17.1 |
tarfile | TAR 归档读写 | open TarFile | 17.1 |
sqlite3 | 内嵌 SQL 数据库 | connect Cursor | 16.3 |
dbm | 键值数据库;dbm.sqlite3(3.13+) | open | — |
shelve | 持久化的字典 | open | — |
其他常用
| 模块 | 一句话用途 | 常用名字 | 正文 |
|---|
importlib | 以编程方式导入与重载模块 | import_module reload | 5.2 |
pydoc | 从文档字符串生成帮助 | render help | 18.3 |
pkgutil | 遍历与发现包 | walk_packages | — |
runpy | 以模块方式运行代码 | run_module | — |
contextlib | 上下文管理器工具 | contextmanager suppress ExitStack | 7.3 |
abc | 抽象基类 | ABC abstractmethod | 6.2 |
annotationlib | 读取延迟求值的注解(3.14+) | get_annotations Format | 9.1 |
sys.monitoring | 低开销运行时监控(3.12+) | use_tool_id set_events | 1.3 |
版本分界速查
标准库新模块的引入版本最容易记混,单独列一张表。本书基线是 requires-python = ">=3.12",因此下表 3.13 / 3.14 的条目在你的项目里可能需要兼容分支。
| 版本 | 新增 / 变化 | 说明 |
|---|
| 3.9 | zoneinfo、graphlib | IANA 时区、拓扑排序 |
| 3.11 | tomllib、asyncio.TaskGroup、asyncio.timeout | 只读 TOML、结构化并发 |
| 3.12 | itertools.batched、pathlib.Path.walk、sys.monitoring | 分批迭代、递归遍历、运行时监控 |
| 3.13 | dbm.sqlite3、copy.replace、warnings.deprecated | SQLite 版 dbm、对象替换、弃用标记 |
| 3.14 | annotationlib、compression.zstd | 延迟注解读取、Zstandard 压缩 |
一个反复被问到的点:3.14 的 Zstandard 模块名是 compression.zstd,不是顶层 zstd。正确写法是 from compression import zstd;直接 import zstd 会 ModuleNotFoundError。同理,3.14 的 compression 包下还有 compression.zlib,但顶层 zlib 依旧保留。
小结
- 标准库的覆盖面远比新手以为的宽:并发、网络、压缩、数据库、剖析都在其中,很多第三方包只是更友好的封装。
- 判断「要不要引入第三方库」的第一步,永远是先查标准库有没有直接可用的模块。
- 版本分界要记牢:
tomllib 是 3.11+,itertools.batched / pathlib.Path.walk / sys.monitoring 是 3.12+,dbm.sqlite3 与 copy.replace 是 3.13+,annotationlib 与 compression.zstd 是 3.14+。 - 「压缩」一栏里,
zstd 自 3.14 起进入标准库,但它的模块名是 compression.zstd,不是顶层 zstd——import zstd 会失败,正确写法是 from compression import zstd。 - 表中「正文」列为「—」的模块,本书未单独讲解,但按需查阅官方文档即可上手。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。