Python 标准库非常庞大且功能强大,它被誉为“自带电池”,意味着无需安装任何第三方包就能完成大量任务。要全部列举是不现实的,但我可以按照功能分类,介绍一些最重要和最常用的模块及其功能。
核心分类与常用模块
1. 内置函数和内置常量 (builtins)
功能:这是最核心的模块,无需使用 import 导入即可在任何地方使用。它包含了语言最基本的功能。
常见成员:
函数:print(), len(), input(), type(), isinstance(), range(), list(), dict(), str(), int(), open() 等。
常量:True, False, None。
2. 系统与操作系统交互
os:提供了大量与操作系统交互的函数。
功能:文件和目录操作(重命名、删除、创建)、获取系统信息、管理进程环境变量、执行系统命令等。
示例:os.listdir(), os.path.join(), os.getcwd(), os.environ。
sys:提供对 Python 解释器本身相关的变量和函数的访问。
功能:访问命令行参数 (sys.argv)、退出程序 (sys.exit())、查看已导入的模块 (sys.modules)、标准输入/输出流 (sys.stdin, sys.stdout, sys.stderr)。
pathlib (Python 3.4+):面向对象的文件系统路径操作,比 os.path 更现代和易用。
功能:路径构造、检查路径属性、文件操作。
示例:Path(‘file.txt’).exists(), Path(‘dir’) / ‘subdir’ / ‘file.txt’。
3. 数据类型与算法
collections:提供了许多有用的容器数据类型,作为内置类型(list, dict, set, tuple)的替代和增强。
namedtuple: 创建有名字段的元组子类,可通过属性访问。
deque: 双端队列,从两端添加或弹出元素效率很高,适合实现队列和栈。
Counter: 计数器,用于统计可哈希对象的出现次数。
defaultdict: 字典子类,在键不存在时提供默认值。
OrderedDict: 字典子类,记录键的插入顺序(Python 3.7+ 普通 dict 也保序,但此类提供额外方法)。
typing (Python 3.5+):支持类型提示,使代码更清晰,便于静态类型检查器和IDE进行分析。
功能:提供 List, Dict, Tuple, Union, Optional 等类型标注工具。
heapq:堆队列算法(优先队列)的实现。
bisect:数组二分查找算法,用于维护已排序的列表而不必每次排序。
array:提供了一种紧凑的数组类型,用于存储基本类型(如整数、浮点数),比列表更高效。
4. 日期与时间
datetime:用于操作日期和时间的类。
功能:日期 (date)、时间 (time)、日期时间 (datetime)、时间间隔 (timedelta)。
time:提供与时间相关的各种函数,通常更侧重于时间戳和睡眠。
功能:获取当前时间戳 (time.time())、线程睡眠 (time.sleep())、转换时间格式。
5. 数学与数字
math:提供了标准的数学函数和常量。
功能:三角函数、对数、指数、平方根、向上/向下取整、π (math.pi)、e (math.e)。
random:生成各种分布的伪随机数。
功能:生成随机整数/浮点数 (random.randint(), random.random)、随机序列洗牌 (random.shuffle())、随机抽样 (random.sample())。
statistics (Python 3.4+):计算基本的统计量。
功能:均值 (mean)、中位数 (median)、方差 (variance)、标准差 (stdev)。
6. 文件与数据持久化
json:用于编码和解码 JSON 数据。
功能:将 Python 对象序列化为 JSON 字符串 (json.dumps()),将 JSON 字符串反序列化为 Python 对象 (json.loads()),与文件交互 (json.dump(), json.load())。
pickle:Python 专用的序列化模块,可将任意 Python 对象转换为字节流。
功能:用于 Python 程序间的数据交换和保存程序状态。注意:不要反序列化不受信任的来源。
sqlite3:提供了对 SQLite 嵌入式数据库的接口。
csv:用于读写 CSV (逗号分隔值) 文件。
7. 数据压缩与归档
gzip, zipfile, tarfile:分别用于处理 .gz, .zip, .tar.* 格式的压缩和解压缩。
8. 并发与并行
threading:提供线程相关的操作,用于实现多线程。
注意:由于 GIL 的存在,多线程不适合 CPU 密集型任务,但适合 I/O 密集型任务。
multiprocessing:使用子进程而非线程来实现并行,可以绕过 GIL,充分利用多核 CPU。
concurrent.futures (Python 3.2+):提供了线程池和进程池的高级接口,简化了异步执行任务。
9. 网络与互联网
socket:提供了底层的网络接口(BSD socket API),是大多数网络应用的基础。
urllib.request:用于打开和读取 URL(主要是 HTTP)。
http.server:提供了构建基本 HTTP 服务器的类(我们上一个示例就用到了它)。
email:用于解析和生成电子邮件。
smtplib:用于发送电子邮件。
10. 开发与调试工具
logging:提供了灵活的事件日志系统,是 print 语句的强大替代品。
功能:支持不同的日志级别(DEBUG, INFO, WARNING, ERROR, CRITICAL)、输出到不同目标(文件、控制台)、自定义格式。
unittest:Python 自带的单元测试框架。
doctest:通过搜索看起来像交互式 Python 会话的文本来测试代码。
pdb:Python 自带的交互式源代码调试器。
timeit:测量小代码片的执行时间。
venv (Python 3.3+):用于创建轻量级的“虚拟环境”,管理项目的依赖包。
11. 其他重要模块
re:正则表达式操作,提供强大的字符串匹配和替换功能。
itertools:提供了用于操作迭代对象的函数,用于创建高效的自定义迭代器。
functools:用于高阶函数(操作或返回其他函数的函数)。
functools.lru_cache: 一个装饰器,为函数提供缓存功能(记忆化)。
enum (Python 3.4+):用于创建枚举类型。
argparse:用于编写用户友好的命令行接口,解析命令行参数。
configparser:用于读写 Windows 风格的 .ini 配置文件。
总结
类别核心模块主要功能系统交互os, sys, pathlib文件操作、获取系统信息、命令行参数数据结构collections, typing增强的容器类型、类型提示日期时间datetime, time日期时间处理、睡眠数学计算math, random, statistics数学函数、随机数、统计计算数据持久化json, pickle, sqlite3JSON/对象序列化、数据库操作并发编程threading, multiprocessing多线程、多进程网络通信socket, urllib底层网络、HTTP 请求开发工具logging, unittest, pdb日志记录、单元测试、调试文本处理re正则表达式匹配
要探索完整的标准库列表,最权威的来源是 Python 官方文档: https://docs.python.org/3/library/index.html