《Python编程入门》附录 B:标准库常用模块速查

本附录按用途分组整理 Python 标准库常用模块:文本与字符串、数据结构、函数式与迭代、文件与路径、日期时间、数据格式、并发与异步、网络、调试与剖析、系统与进程、测试、数值随机与哈希、压缩归档与持久化,每组给出模块、一句话用途、常用名字与对应正文小节,并标注引入版本与版本分界速查。

Python 常被形容为「自带电池」(batteries included)——标准库覆盖了从字符串处理到并发、从压缩归档到数据库的绝大多数日常需求,很多第三方包其实只是把标准库包了一层更好用的壳。这一页按用途把常用模块列成表,并标注引入版本与本书对应的讲解章节,方便你在动手前先问一句:这件事标准库能不能直接干?

下表所有模块都在本机 Python 3.14.6 上 import 验证过存在。未标注版本的模块自 Python 3 早期即存在;标「3.11+」这类字样的,低于该版本会 ImportError。

附录 B 标准库常用模块速查

文本与字符串

模块一句话用途常用名字正文
re正则表达式匹配与替换compile search findall sub10.1
string字符常量与简单模板ascii_letters digits Template3.1
textwrap折行、缩进、去缩进fill shorten dedent10.1
unicodedata查询 Unicode 字符属性name category normalize10.2
difflib序列 / 文本差异比较SequenceMatcher unified_diff10.3
pprint结构化数据的可读打印pprint pformat10.2
reprlib可限制长度的 reprrepr Repr—
codecs编解码器注册与流包装open encode decode10.2
locale语言区域与编码偏好getpreferredencoding10.2

数据结构

模块一句话用途常用名字正文
collections专用容器与有序字典deque Counter defaultdict namedtuple3.2
heapq堆队列 / 优先队列算法heappush heappop nlargest8.1
bisect有序序列二分查找与插入bisect_left insort3.2
array紧凑的同类型数值数组array18.2
enum枚举类型与成员Enum IntEnum StrEnum auto18.1
dataclasses自动生成方法的类装饰器dataclass field6.2
typing静态类型提示工具Protocol TypedDict Self override9.1
types动态类型辅助MappingProxyType SimpleNamespace6.1
graphlib有向图拓扑排序(3.9+)TopologicalSorter—
weakref弱引用,避免循环持有ref WeakValueDictionary18.2
copy浅拷贝与深拷贝copy deepcopy replace(3.13+)3.3

函数式与迭代

模块一句话用途常用名字正文
functools高阶函数工具cache lru_cache partial reduce wraps singledispatch4.3
itertools迭代器构建块chain groupby islice batched(3.12+)8.1
operator把运算符变成函数itemgetter attrgetter add4.3

文件与路径

模块一句话用途常用名字正文
pathlib面向对象的路径操作Path Path.walk(3.12+)10.2
os / os.path操作系统与路径接口environ getcwd path.join listdir10.2
io内存中的文本 / 字节流StringIO BytesIO8.2
glob按通配符匹配路径glob iglob10.2
fnmatch文件名通配符匹配fnmatch filter10.2
tempfile临时文件与临时目录TemporaryDirectory NamedTemporaryFile10.2
shutil高层文件 / 目录操作copy copytree rmtree make_archive17.1
fileinput逐行遍历多个文件input files—
stat解释文件状态位S_ISDIR st_mode—

日期时间

模块一句话用途常用名字正文
datetime日期、时间与时长的运算datetime date timedelta11.1
zoneinfoIANA 时区数据库(3.9+)ZoneInfo11.1
time时间戳、计时与休眠time perf_counter sleep11.1
calendar日历计算month isleap monthrange11.1
timeit小段代码的微基准计时timeit repeat18.2

数据格式与序列化

模块一句话用途常用名字正文
jsonJSON 读写dumps loads dump load10.3
csvCSV 读写reader writer DictReader10.3
tomllib只读 TOML 解析(3.11+)load loads10.3
configparserINI 风格配置读写ConfigParser—
picklePython 对象二进制序列化dumps loads10.3
struct二进制数据打包 / 解包pack unpack—
marshalPython 内部对象序列化dumps loads—
base64Base64 编解码b64encode b64decode—
xmlXML 解析与生成ElementTree—

并发与异步

模块一句话用途常用名字正文
threading线程与同步原语Thread Lock Event12.1
multiprocessing多进程并行Process Pool shared_memory12.2
concurrent.futures线程 / 进程池的统一接口ThreadPoolExecutor ProcessPoolExecutor as_completed12.2
asyncio异步 I/O 与事件循环run TaskGroup(3.11+)timeout(3.11+)gather13.1
queue线程安全队列Queue PriorityQueue12.1
contextvars上下文局部变量(3.7+)ContextVar13.3
signal操作系统信号处理signal SIGINT—
sched通用事件调度器scheduler—

网络

模块一句话用途常用名字正文
socket底层 TCP / UDP 套接字socket create_connection12.3
sslTLS / SSL 加密SSLContext create_default_context12.3
httpHTTP 状态码与客户端 / 服务端HTTPStatus client server16.1
urllibURL 处理与简易请求request.urlopen parse12.3
ipaddressIPv4 / IPv6 地址与网段ip_address ip_network—
socketserver服务端请求处理框架TCPServer—
selectI/O 多路复用select poll—
email邮件消息构造与解析message_from_string EmailMessage—

调试与剖析

模块一句话用途常用名字正文
logging分级日志记录getLogger basicConfig Handler11.2
traceback异常回溯格式化format_exc print_exc7.1
warnings发出与过滤警告warn filterwarnings7.2
pdb交互式调试器set_trace breakpoint—
faulthandler崩溃时打印 Python 回溯enable—
cProfile / profile确定性函数级剖析Profile run18.2
pstats剖析结果排序与分析Stats18.2
tracemalloc追踪内存分配start take_snapshot18.2
gc垃圾回收控制collect get_objects18.2
inspect运行时自省对象signature getmembers8.3
dis字节码反汇编dis disassemble1.3
ast抽象语法树parse walk1.3
tokenize源码词法分析generate_tokens1.3
py_compile / compileall编译为字节码缓存compile compileall1.3

系统与进程

模块一句话用途常用名字正文
sys解释器接口argv path version exit11.3
subprocess启动与管理子进程run Popen17.1
platform平台与解释器信息system python_version2.2
sysconfig解释器构建配置get_paths get_config_var18.3
site站点包路径初始化getsitepackages2.1
venv创建虚拟环境EnvBuilder create2.1
atexit解释器退出时的清理钩子register—
getpass隐藏回显的密码输入getpass11.3
argparse命令行参数解析ArgumentParser add_argument11.3
resource进程资源用量与限制getrusage—
shlexshell 风格词法切分与引用split quote17.1

测试与质量

模块一句话用途常用名字正文
unittest标准库单元测试框架TestCase main14.1
unittest.mock打桩与替换依赖Mock MagicMock patch14.2
doctest从文档字符串里跑测试testmod run_docstring_examples14.1

数值、随机与哈希

模块一句话用途常用名字正文
math浮点数学函数与常量sqrt isclose gcd pi3.1
cmath复数数学函数sqrt phase—
decimal精确十进制算术Decimal getcontext3.1
fractions有理数精确运算Fraction—
statistics基础统计量mean median stdev17.3
random伪随机数与抽样random randint choice shuffle17.3
secrets密码学安全的随机数token_hex token_bytes randbelow—
hashlib哈希摘要sha256 blake2b file_digest—
hmac带密钥的消息认证码new compare_digest—
uuid唯一标识符uuid4 UUID—

压缩、归档与持久化

模块一句话用途常用名字正文
zlibDEFLATE 压缩compress decompress18.3
gzipgzip 文件读写open compress18.3
bz2bzip2 压缩open compress18.3
lzmaLZMA / XZ 压缩open compress18.3
compression.zstdZstandard 压缩(3.14+,PEP 784)compress decompress open18.3
zipfileZIP 归档读写ZipFile ZipInfo17.1
tarfileTAR 归档读写open TarFile17.1
sqlite3内嵌 SQL 数据库connect Cursor16.3
dbm键值数据库;dbm.sqlite3(3.13+)open—
shelve持久化的字典open—

其他常用

模块一句话用途常用名字正文
importlib以编程方式导入与重载模块import_module reload5.2
pydoc从文档字符串生成帮助render help18.3
pkgutil遍历与发现包walk_packages—
runpy以模块方式运行代码run_module—
contextlib上下文管理器工具contextmanager suppress ExitStack7.3
abc抽象基类ABC abstractmethod6.2
annotationlib读取延迟求值的注解(3.14+)get_annotations Format9.1
sys.monitoring低开销运行时监控(3.12+)use_tool_id set_events1.3

版本分界速查

标准库新模块的引入版本最容易记混,单独列一张表。本书基线是 requires-python = ">=3.12",因此下表 3.13 / 3.14 的条目在你的项目里可能需要兼容分支。

版本新增 / 变化说明
3.9zoneinfo、graphlibIANA 时区、拓扑排序
3.11tomllib、asyncio.TaskGroup、asyncio.timeout只读 TOML、结构化并发
3.12itertools.batched、pathlib.Path.walk、sys.monitoring分批迭代、递归遍历、运行时监控
3.13dbm.sqlite3、copy.replace、warnings.deprecatedSQLite 版 dbm、对象替换、弃用标记
3.14annotationlib、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。
  • 表中「正文」列为「—」的模块,本书未单独讲解,但按需查阅官方文档即可上手。

继续阅读

探索更多技术文章

浏览归档,发现更多关于系统设计、工具链和工程实践的内容。

全部文章 返回首页

「python」更多文章

  1. 《Python高级编程》目录
  2. 《Python高级编程》11.3 PEP 流程与版本迁移策略
  3. 《Python高级编程》11.2 嵌入式与自由线程运行时