04.1
"自带电池"
标准库开箱即用:pathlib、datetime、json、re、collections、itertools、logging 等覆盖绝大多数日常需求。
先查标准库
遇到问题先查标准库,避免过早引入第三方依赖。需要更强能力(HTTP、数据框)再上 requests/pandas。
04.2
pathlib 与文件
pathlib 提供面向对象的路径操作,比字符串拼接更安全跨平台。
from pathlib import Path
p = Path("data") / "a.txt"
p.parent.mkdir(parents=True, exist_ok=True)
text = p.read_text(encoding="utf-8")
p.write_text("hi", encoding="utf-8")04.3
json 与序列化
json 模块在 Python 对象与 JSON 间互转;dataclass 可用 asdict 序列化。
import json
s = json.dumps({"name": "林可", "age": 28}, ensure_ascii=False)
d = json.loads(s)04.4
datetime
datetime/timedelta 处理日期与时间;时区用 zoneinfo(3.9+)。
from datetime import datetime, timedelta
now = datetime.now()
later = now + timedelta(days=7)04.5
正则与 collections
re 做模式匹配;collections 提供 Counter/defaultdict/deque 等高效容器。
from collections import Counter
words = "a b a c a b".split()
print(Counter(words)) # Counter({'a':3,'b':2,'c':1})04.6
venv 虚拟环境
venv 为每个项目隔离依赖,避免全局污染与版本冲突。
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt04.7
pip 与依赖
pip 安装第三方包;用 requirements.txt 或 pyproject 锁定版本,保证可复现。
pip freeze > requirements.txt
pip install "fastapi>=0.110"
# 现代推荐用 uv 或 poetry 管理
pip install poetry
poetry add fastapi04.8
打包发布
用 pyproject.toml 描述项目元数据与依赖,build + twine 发布到 PyPI。
[project]
name = "mylib"
version = "0.1.0"
dependencies = ["requests>=2.0"]
[build-system]
requires = ["setuptools>=61"]
build-backend = "setuptools.build_meta"04.9