开源达人整理的python模块大全!有了它事半功倍。

一、核心标准库分类与核心用途

我将这些库按功能维度分类,并说明每个库的核心价值(新手优先掌握标⭐的):

1. 命令行与配置处理

库名 核心用途 新手示例
argparse 专业的命令行参数解析(替代 getopt) 定义脚本接收的参数、默认值、帮助信息
getopt 兼容 Unix 风格的简单参数解析(偏底层) 解析 -h/--help 这类简单参数
configparser 解析 INI 格式的配置文件(如 config.ini 读取 / 写入 [section] key=value 配置

2. 数据类型与数学计算

库名 核心用途 新手示例
math 基础数学运算(三角函数、对数、常量 π/e) 计算平方根 math.sqrt(16)、圆周率 math.pi
decimal 高精度十进制运算(避免浮点数精度丢失) 精准计算 Decimal('0.1') + Decimal('0.2')
fractions 分数运算(分子 / 分母形式) Fraction(1, 3) + Fraction(1, 6) = Fraction(1, 2)
operator 内置运算符的函数版(如 operator.add 替代 + 批量运算、自定义排序时简化代码
heapq 堆排序算法(优先队列) 快速获取 Top N 元素
uuid 生成唯一标识符(UUID) 分布式系统中标识资源
base64 Base64 编解码 处理二进制数据的文本传输(如接口加密)
zlib 数据压缩 / 解压缩 减小文件 / 数据传输体积

3. 时间与日期

库名 核心用途 新手示例
datetime 日期时间处理(核心库) 解析时间、计算时间差、格式化输出
calendar 日历相关操作 生成月历、判断闰年、获取某周的日期

4. 文件与路径处理

库名 核心用途 新手示例
os 操作系统交互(文件、进程、环境变量) 创建目录 os.mkdir、执行系统命令 os.system
os.path 路径字符串处理(老版) 拼接路径 os.path.join、判断文件存在 os.path.exists
pathlib 面向对象的路径处理(新版推荐) Path('/a/b').joinpath('c.txt') 更直观
glob/fnmatch 文件通配符匹配 查找所有 .txt 文件 glob.glob('*.txt')
tarfile 压缩 / 解压 tar 包 处理 .tar.gz 格式文件
zipfile 压缩 / 解压 zip 包 创建 / 读取 zip 文件
mimetypes 判断文件 MIME 类型 识别 txt/jpg/pdf 等文件类型

5. 数据序列化与 IO

库名 核心用途 新手示例
json JSON 编解码(最常用) 接口数据传输、配置文件读写
pickle Python 对象序列化(仅限 Python) 保存 / 加载复杂对象(如类实例)
io 内存 IO(模拟文件操作) 无需创建物理文件,直接操作内存中的数据

6. 并发与异步

库名 核心用途 新手示例
asyncio 异步 IO(单线程并发) 高 IO 场景(网络请求、文件读写)提升效率
threading 多线程(IO 密集型任务) 同时处理多个网络请求
multiprocessing 多进程(CPU 密集型任务) 利用多核 CPU 计算
concurrent.futures 高级并发接口(ThreadPool/ProcessPoolExecutor) 简化线程 / 进程池使用
contextvars 异步 / 多线程中的上下文变量 替代全局变量,安全传递上下文

7. 网络编程

库名 核心用途 新手示例
socket 底层网络编程(TCP/UDP) 实现简单的客户端 / 服务器
ssl 加密套接字(HTTPS/SSL 通信) 为 socket 添加 TLS/SSL 加密
http HTTP 协议相关(客户端 / 服务器) 简单 HTTP 请求、搭建简易 HTTP 服务
urllib URL 处理与 HTTP 请求(内置) 发送 GET/POST 请求(新手可先用 requests 库)
imaplib IMAP 邮件协议 读取邮件服务器中的邮件
hmac 哈希消息认证(接口签名) 接口防篡改、身份验证

8. 调试与日志

库名 核心用途 新手示例
logging/logging.handlers 日志记录(替代 print) 输出不同级别日志、保存日志到文件 / 远程
pdb 内置调试器 断点调试 pdb.set_trace()
bdb 调试器框架(扩展 pdb) 自定义调试工具
inspect 检查运行时对象(函数、类) 获取函数参数、类的方法列表
faulthandler 捕获程序崩溃信息 定位段错误、死锁等底层问题
sys 系统交互(解释器参数、标准 IO、异常) 获取命令行参数 sys.argv、退出程序 sys.exit()
sys.monitoring 监控 Python 解释器行为 追踪函数调用、代码执行

9. 文本处理

库名 核心用途 新手示例
re 正则表达式(核心) 匹配、替换、提取文本中的特定内容
difflib 文本差异对比 比较两个文件的内容差异
textwrap 文本换行、缩进 格式化长文本输出
unicodedata Unicode 字符处理 转换字符大小写、判断字符类型
linecache 读取文件指定行 快速获取大文件的某一行(无需全读)

10. 高级 / 特殊用途

库名 核心用途 适用场景
ast 抽象语法树(解析 Python 代码) 代码分析、静态检查、自定义解释器
ctypes 调用 C 语言编写的动态库 与 C 扩展交互
curses 终端图形界面(无 GUI) 编写终端交互程序
errno 系统错误码定义 处理系统调用的错误(如文件不存在)
functools 函数工具(装饰器、偏函数等) @lru_cache 缓存、partial 固定参数
getpass 无回显输入密码 命令行输入密码时隐藏内容
graphlib 图算法(拓扑排序) 处理依赖关系(如任务调度)
pydoc 生成文档 / 查看帮助 自动生成 API 文档
dis 反汇编 Python 字节码 分析代码执行效率
symtable 符号表分析 静态代码分析
sysconfig Python 编译 / 安装配置 查看解释器的编译参数
turtle 海龟绘图(入门可视化) 教新手编程的图形化工具
tkinter GUI 编程(内置) 简单桌面应用(如计算器、记事本)
webbrowser 调用系统浏览器 打开指定 URL
types 内置类型的底层定义 动态创建类 / 函数
typing 类型注解(PEP484) 提升代码可读性、静态检查(如 List[int]

11. 测试

库名 核心用途 新手示例
unittest 单元测试框架(内置) 编写测试用例、断言、批量执行测试

二、性能优化核心思路

结合你列出的库,性能优化可从以下维度入手:
  1. 并发 / 异步优化
    • IO 密集型(网络请求、文件读写):用 asyncio 异步编程,替代同步阻塞;或 threading/concurrent.futures.ThreadPoolExecutor 多线程。
    • CPU 密集型:用 multiprocessing/concurrent.futures.ProcessPoolExecutor 多进程(规避 GIL 锁)。
  2. 内存与资源优化
    • gc 模块手动管理垃圾回收(谨慎使用,优先优化代码);
    • io 模块的内存 IO(BytesIO/StringIO)减少磁盘 IO;
    • zlib 压缩大数据,减少传输 / 存储开销。
  3. 代码层面优化
    • functools.lru_cache 缓存高频调用的函数结果;
    • operator 替代自定义 lambda,提升执行效率;
    • pathlib 替代 os.path(路径处理更高效且易读);
    • pdb/inspect 定位性能瓶颈,而非盲目优化。

总结

  1. 新手优先级:先掌握 argparse(命令行)、datetime(时间)、os/pathlib(文件)、json(数据)、re(正则)、logging(日志)、asyncio/concurrent.futures(并发)这些高频库。
  2. 性能优化核心:IO 密集型用异步 / 多线程,CPU 密集型用多进程,先定位瓶颈再优化,优先使用内置库而非自定义实现。
  3. 路径处理推荐:新代码优先用 pathlib(面向对象),替代老的 os.path,代码更易读且不易出错。
如果你想深入了解某个具体库的使用示例(比如 asyncio 异步爬取、configparser 读取配置),可以告诉我,我会补充对应的代码和解释。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注