标准库在线文档:
Python 标准库
一句话:**Python 安装完自带的一堆模块 / 包,不需要 pip install,直接 import 就能用,这就是标准库。**它跟着 Python 解释器一起发布,跨平台(Windows / Linux / Mac / 嵌入式),文档统一,稳定性高。
和第三方库(requests、numpy)对比:第三方要 pip 装;标准库自带。
查看标准库清单
官方文档:Python 标准库 --- Python 3.15.2 文档
Ubuntu 下也可以看:
python3 -m pydoc -b会打开浏览器文档,里面 Built-in Modules、Library Reference 就是。
分类介绍常用标准库(挑你关心的,结合前面 HTTP、嵌入式、命令行)
1. 文本、字符串、编码
string:字符常量(大小写字母、数字)
re:正则表达式,文本匹配提取,非常高频
json:JSON 序列化 / 反序列化!嵌入式上报、HTTP 接口最常用
import json data = {"name":"test"} s = json.dumps(data) d = json.loads(s)2. 文件、路径、IO
os:操作系统接口,路径、创建文件夹、环境变量、执行命令pathlib(推荐,Python3.4+):面向对象路径,比 os.path 优雅io:内存文件流、缓冲 IOshutil:文件复制、移动、删除目录3. 时间、日期
time:时间戳、sleep、获取系统时间datetime:日期时间计算、格式化calendar:日历相关4. 网络相关(重点!你前面关心 HTTP)
✅
http包(标准库自带 HTTP 组件)
http.client:底层 HTTP 客户端(GET/POST,原生,没有 requests 好用)http.server:简易 HTTP 服务器,python -m http.server就是它!http.cookies:cookie 处理✅
urllib包(标准库 HTTP 请求,不用装 requests)
urllib.request:发起 HTTP 请求(标准库原生 http 客户端)import urllib.request
resp = urllib.request.urlopen("https://httpbin.org/get")
print(resp.read())对比:
urllib标准自带;requests第三方封装,API 舒服很多。
urllib.parse:url 编码、拼接 url,拼接 get 参数很常用✅
socket:最底层 BSD 套接字!TCP/UDP,和 C 的 socket API 思想几乎一致,嵌入式网络开发必看✅
ssl:TLS 加密套接字,给 socket 加 HTTPS✅
selectors/select:IO 多路复用(epoll/poll),写服务端、高并发网络5. 进程、线程、异步
threading:多线程
multiprocessing:多进程
subprocess:调用外部程序(比如在 python 里调用 curl、wget,相当于 C 的 system/popen)import subprocess
subprocess.run(["ls","-l"])
asyncio:Python 原生异步 IO 框架(写异步网络)6. 数据结构、容器
collections:增强容器:deque、defaultdict、OrderedDict、Counter
heapq:堆
bisect:二分查找
array:基础类型数组(比 list 省内存,类似 C 数组)
struct:二进制打包解包!!嵌入式超级常用 把数字按指定字节序打包成 bytes,和单片机通信、解析二进制协议
import struct buf = struct.pack("<H", 100) # 小端 uint167. 序列化
pickle:python 对象序列化(不要跨语言、不要解析不可信数据)struct上面说了,二进制协议json:跨语言文本协议8. 命令行、参数解析
sys:非常重要!解释器相关:sys.argv命令行参数、sys.path、标准输入输出argparse:命令行参数解析,做命令行工具getopt:老版参数解析9. 数学
math:浮点数数学函数random:伪随机数statistics:统计函数10. 压缩、加密、哈希
hashlib:md5、sha256 哈希zlib/gzip:压缩secrets:安全随机数(代替 random 用于密钥)11. 内置模块(built-in,连 import 都不用)
len、int、str、list这些来自builtins,是内置模块,不需要 import。两个关键区分
- 内置模块 (built-in) :C 写在解释器里面,
import sys; import math- 标准库模块:一部分是 py 源码模块,一部分是 C 扩展模块(.so),都随 Python 自带
👉 标准库 ≠ 内置模块;内置模块是标准库的子集。
标准库 vs 第三方库(再次巩固)
- 标准库:自带,
import urllib/import json,零依赖,兼容性强;缺点:API 偏底层,简陋(urllib 比 requests 难用)- 第三方库:pip 安装,比如 requests、pyserial,封装更好、功能更强,但部署的时候要额外装包
一个小坑
标准库也分版本!Python3.8 和 Python3.12 的标准库有新增、废弃。比如一些旧模块被移除(如
urllib2,Python3 合并进 urllib)
