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())。
- 功能 :将 Python 对象序列化为 JSON 字符串 (
-
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, sqlite3 |
JSON/对象序列化、数据库操作 |
| 并发编程 | threading, multiprocessing |
多线程、多进程 |
| 网络通信 | socket, urllib |
底层网络、HTTP 请求 |
| 开发工具 | logging, unittest, pdb |
日志记录、单元测试、调试 |
| 文本处理 | re |
正则表达式匹配 |
要探索完整的标准库列表,最权威的来源是 Python 官方文档 :
https://docs.python.org/3/library/index.html