Skip to content

标准库阅读指南:根据任务选择模块 ​

Python 标准库包含很多模块。面对一个真实任务,应该先选模块,还是先翻 API?基础阶段不需要从头背完所有内容,先根据输入、处理过程和输出找到合适的模块,再进入对应章节完成任务。

这一章是标准库部分的阅读入口。遇到具体需求时,可以从下面的任务映射和学习路线开始。

根据任务选择标准库模块

任务与模块映射 ​

想完成的任务优先阅读选择说明
统计运行耗时、暂停一段时间time适合计时、时间戳和短暂等待
处理日期、截止时间和时间间隔datetime业务中的日期时间优先使用
获取当前目录、环境变量或遍历目录os处理操作系统和已有 os 接口
确认解释器、读取命令行参数sys处理 Python 运行环境和程序入口参数
记录程序运行过程logging用级别和日志文件保存运行信息
提取、校验或替换格式化文本re普通字符串方法不足时再使用正则
拼接路径、判断文件、读写小文件pathlib新代码中的路径操作优先选择
复制、移动、删除目录或制作备份shutil处理高层文件和目录操作
按通配符批量查找文件glob根据文件名模式查找一批路径
创建、检查或解压 ZIP 文件zipfile处理 ZIP 归档和解压安全检查

先描述任务,再选模块

“我要使用 os”不是任务。“我要递归统计目录中的 Python 文件”才是任务。先说清输入、处理过程和输出,再决定需要哪个模块。

文件自动化路线 ​

如果目标是整理课程资料、批量查找文件或制作备份,建议按下面的路线阅读:

text
pathlib → glob → shutil → zipfile
  1. pathlib 负责创建、拼接和检查路径。
  2. glob 负责按照文件名模式批量查找。
  3. shutil 负责复制、移动、删除和备份。
  4. zipfile 负责创建和解压 ZIP 文件。

os 中仍有环境变量、目录遍历和大量已有项目会使用的接口,可以作为补充阅读。新项目只需要进行常规路径操作时,优先从 pathlib 开始。

日期与计时路线 ​

业务日期和程序计时是两类不同任务:

text
日期、截止时间、时间间隔 → datetime
运行耗时、暂停、时间戳 → time

先阅读 datetime,掌握日期、日期时间和时间差;需要统计代码耗时或暂停程序时,再阅读 time。

命令行工具路线 ​

需要编写能够接收终端参数的脚本时,可以按下面的路线组合:

text
sys → pathlib → logging
  1. sys 读取命令行参数、解释器信息和退出状态。
  2. pathlib 处理用户传入的文件路径。
  3. logging 记录运行过程和错误信息。

日志与文本处理路线 ​

如果程序需要先记录日志,再从日志中提取信息,可以按下面的路线阅读:

text
logging → re

logging 负责生成结构清楚的运行记录;re 可以从格式相对稳定的文本中提取字段。

普通的查找、替换和切分能够解决问题时,继续使用字符串方法。只有规则比较复杂时再引入正则表达式。

学习范围与优先级 ​

第一次学习标准库,应该按项目需要选择,不要求一次学完全部章节。

核心能力 ​

  • 能使用 import 导入模块。
  • 能根据任务找到对应章节。
  • 能运行综合案例并修改输入数据。
  • 能通过官方文档或编辑器提示查询函数参数。
  • 涉及文件删除、覆盖和解压时,会先检查目标路径。

按需内容 ​

  • 暂时用不到的模块可以先跳过。
  • 每个模块中的进阶参数不要求背诵。
  • 不同模块功能重叠时,先掌握课程推荐的常用方案。

模块选择边界 ​

time 与 datetime ​

  • 处理日历日期、截止时间和时间间隔,优先使用 datetime。
  • 统计程序耗时、暂停程序或处理基础时间戳,使用 time。

os.path 与 pathlib ​

  • 新代码中的常规路径操作,优先使用 pathlib。
  • 阅读旧代码或需要 os 的系统能力时,再使用 os.path。

Path.glob() 与 glob ​

  • 已经使用 Path 对象时,可以继续使用 Path.glob()。
  • 需要单独讲解通配符、隐藏文件和 root_dir 等能力时,阅读 glob 章节。

pathlib 与 shutil ​

  • 创建路径、判断状态和读写小型文本文件,使用 pathlib。
  • 复制目录树、移动文件和递归删除目录,使用 shutil。

任务选择练习 ​

面对下面的任务,先不要写代码,先选出模块并说明选择依据:

  1. 计算作业距离截止日期还有几天。
  2. 找出资料目录中的全部 .md 文件并打包。
  3. 从程序参数中读取成绩文件路径。
  4. 把程序错误写入日志文件。
  5. 从日志文本中提取日期、级别和消息。

能够根据任务选出模块后,再进入对应章节学习具体 API。