5分钟Python · 选型指南 | 选对工具,比学会所有语法更管用
背景
本文用的两个筛选标准:
- 跨场景普适性:考虑做数据分析、自动化脚本、Web开发、AI应用,大概率都会用到
- 实际使用数据:参考PyPI 2026年上半年下载量统计
注:JetBrains和Stack Overflow的2026年度调查报告预计年底才发布,所以本文的数据来源主要是PyPI下载量(2026年1-6月月均数据)。
这5个库覆盖了数据处理、网络请求、文件操作、测试四个领域。无论你做哪方向的Python开发,大概率会用到它们。
五个库的主要用途
| | | |
|---|
| requests | | |
| pandas | | |
| pytest | | |
| pathlib | | |
| shutil | | |
说明:numpy 的月下载量(1.7亿+),但它属于“数据分析/科学计算”领域的专用库,在Web开发、自动化脚本等场景中非必选项。requests和pandas在跨领域普适性上更强,它们适用于数据分析、自动化脚本、Web开发、AI应用等场景。
另外,boto3的月下载量(1.9亿+)排名第三,主要用于AWS云服务,国内用户使用频率有限。本文以国内开发者实际使用场景为主要依据,未将特定云厂商SDK列入通用统计。
1. requests
下载量:3.1亿+/月 | 排名:第1
程序需要调用API、爬取网页、对接第三方接口等都需要发HTTP请求。
与标准库urllib的比较
标准库的urllib存在几个问题:API设计繁琐(处理headers和body需要分别写多行代码)、不支持自动重定向、会话管理需要手动实现。requests用起来简单太多——requests.get(url)一行搞定,而且resp.json()直接返回字典。
2. pandas
下载量:2.2亿+/月 | 排名:第2
如果需要处理表格数据——读取CSV、合并Excel、分组统计、数据清洗,那么pandas是Python生态中最成熟的选择。
pandas底层用C和Cython优化,处理几十万行数据依然流畅,API设计贴近Excel的操作习惯。
典型使用场景:数据分析、数据清洗、报表生成、CSV/Excel文件处理。
import pandas as pddf = pd.read_csv("销售数据.csv")df.groupby("地区")["销售额"].sum()
3. pytest
下载量:1.8亿+/月 | 排名:第4
当代码量超过一定规模,人工测试就会变得效率低、容易遗漏。pytest能把测试自动化,能实现快速验证代码修改的效果。
与标准库unittest比较
unittest是基于类的测试框架,写一个简单的测试也需要创建测试类、继承TestCase、写断言方法,代码偏重。pytest的写法更简洁——函数式测试,直接assert即可,报错信息清晰易读。
使用场景:单元测试、集成测试、自动化测试。
4. pathlib
Python 内置标准库
pathlib是Python 3.4引入的现代化路径处理库,提供了面向对象的API。
与os.path比较的优势
os.path用字符串处理路径,拼接时需要用os.path.join(),判断文件类型时需要用os.path.isfile(),代码分散。pathlib把路径封装成对象,Path("/a/b") / "c.txt"直接拼接,Path.iterdir()直接遍历,代码更集中。Python官方文档已推荐在3.6+优先使用pathlib。
from pathlib import Pathfor f in Path(".").glob("*.py"):print(f.name)
5. shutil
shutil是os模块的补充,提供更高级的文件操作——复制整个目录树、删除非空目录、移动文件、创建压缩包。
os模块能删除文件(os.remove)和空目录(os.rmdir),但删除非空目录需要自己写递归遍历。shutil.rmtree()一行搞定。shutil.copytree()复制整个目录、shutil.make_archive()创建压缩包,都是日常脚本中的高频需求。
import shutilshutil.copytree("源目录","目标目录")shutil.rmtree("要删除的目录")
其他常用库简要说明
| | |
|---|
numpy | | |
boto3 | | |
fastapi | | |
click | | |
openpyxl | | |
因工作领域不同,常用库会有差异:
| |
|---|
| pandas, numpy, matplotlib |
| fastapi/django, requests, sqlalchemy |
| pathlib, shutil, subprocess, requests |
| transformers, torch, datasets |
你用得最多的Python库是哪个?欢迎留言交流。
作者简介:码上工坊,探索用编程为己赋能,定期分享编程知识和项目实战经验。持续学习、适应变化、记录点滴、复盘反思、成长进步。
重要提示:本文主要是记录自己的学习与实践过程,所提内容或者观点仅代表个人意见,只是我以为的,不代表完全正确,欢迎交流讨论。