os:操作系统接口

import os

os.getcwd()                  # 当前工作目录
os.listdir(".")              # 列出文件
os.makedirs("a/b/c", exist_ok=True)    # 递归建目录
os.path.exists("file.txt")
os.path.join("a", "b", "c.txt")        # 'a/b/c.txt'(跨平台分隔符)
os.environ["HOME"]           # 环境变量

pathlib:现代版路径处理(推荐)

from pathlib import Path

p = Path("a/b/c.txt")
p.exists()
p.parent           # Path('a/b')
p.name             # 'c.txt'
p.stem             # 'c'
p.suffix           # '.txt'
p.read_text(encoding="utf-8")
p.write_text("hello", encoding="utf-8")

# 遍历
for f in Path(".").rglob("*.py"):     # 递归找所有 .py
    print(f)

pathlib 比 os.path 更好用——优先用它。

sys:解释器与命令行

import sys

sys.argv             # 命令行参数列表
sys.exit(0)          # 退出,0 = 正常
sys.platform         # 'win32' / 'darwin' / 'linux'
sys.version          # Python 版本
sys.stdin / stdout / stderr     # 标准输入输出

json:JSON 序列化

import json

data = {"name": "WadeLy", "skills": ["Python", "AI"]}

s = json.dumps(data, ensure_ascii=False, indent=2)    # 字典 → 字符串
d = json.loads(s)                                      # 字符串 → 字典

with open("data.json", "w", encoding="utf-8") as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

datetime:日期时间

from datetime import datetime, date, timedelta

now = datetime.now()              # 当前时间
today = date.today()
fmt = now.strftime("%Y-%m-%d %H:%M:%S")
parsed = datetime.strptime("2026-05-09", "%Y-%m-%d")

# 加减
tomorrow = today + timedelta(days=1)
in_3h = now + timedelta(hours=3)

random:随机

import random

random.random()              # 0.0 ~ 1.0 浮点
random.randint(1, 100)       # 1 ~ 100 整数(含两端)
random.choice(["A", "B", "C"])
random.shuffle(my_list)      # 原地打乱
random.sample(my_list, 3)    # 不重复抽 3 个

collections:高级容器

from collections import Counter, defaultdict, deque

Counter("hello")             # Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
defaultdict(list)            # 取不存在的键自动给空列表
deque([1, 2, 3])             # 双端队列,append/popleft 都 O(1)

itertools:迭代利器

from itertools import product, combinations, chain

list(product([1,2], [3,4]))           # [(1,3), (1,4), (2,3), (2,4)]
list(combinations([1,2,3,4], 2))      # 所有 2 元组合
list(chain([1,2], [3,4]))             # [1,2,3,4]  连接

下一篇讲包管理:怎么装第三方库 + 虚拟环境。