LESSON p.2 · 工程 · 150 分钟

Python 工程习惯:环境、文件、异常与 pytest

Python 工程习惯:环境、文件、异常与 pytest:理解虚拟环境、模块、文件 I/O、异常、断言、单元测试与调试,完成“把一次性脚本改造成可复现的小项目”。属于「零基础先修加速带」学习阶段。

学完你应该能够

  1. 能创建隔离环境并记录 Python 与依赖版本。
  2. 能把脚本拆成可导入模块、命令入口与测试。
  3. 能为文件编码、路径与输入错误设计明确失败方式。
  4. 能用 pytest 的 arrange–act–assert 结构保护重构。

核心概念

虚拟环境与依赖

项目环境要隔离,并记录解释器与关键包版本。能在新目录重建环境,比“我电脑上能跑”更接近可复现证据。

模块与入口

计算逻辑放在可导入函数中,命令行入口只负责解析参数和调用。这样同一逻辑既能被测试,也能被 notebook 和后续训练脚本复用。

Path 与 UTF-8

路径不是普通字符串拼接问题。使用 pathlib,明确输入文件后缀和 UTF-8 编码,并用临时目录测试,避免依赖当前工作目录。

异常与断言

异常用于外部输入或运行条件不满足,断言用于内部不变量。捕获异常时要缩小范围,并保留足够上下文,而不是 except Exception 后静默继续。

pytest 回归

每个测试固定输入、执行一个行为、检查明确输出。回归测试的价值是让重构和向量化有安全网,而不是追求测试数量。

实践任务

把一次性文本脚本改造成可复现小项目

  • 建立 src、tests、README 与依赖清单,记录 Python 版本。
  • 把读文件、tokenize、计数和输出拆为独立函数。
  • 用 tmp_path 测试 UTF-8 文件、空文件、错误后缀和不存在路径。
  • 删除环境后按 README 重建并运行 pytest,记录命令与结果。

进入完整互动课程