使用 Python(Click) 构建命令行工具 笔记

使用 Python(Click) 构建命令行工具

本文介绍 Penny,一个使用 Python 和 Click 库构建的简单命令行支出追踪器。Penny 允许用户直接在终端中添加、列出、汇总和清除支出,无需依赖 Web 界面或数据库。作者选择 Click 而非 Python 内置的 argparse,因其基于装饰器的命令和选项定义方式更为直观。项目结构包含三个主要文件:commands.py 用于实现各个命令的逻辑,penny.py 将这些命令整合为单一 CLI 工具,pyproject.toml 用于打包并定义入口点。Penny 将支出数据存储在一个名为 expenses.json 的纯 JSON 文件中,每次操作均对其进行读写。add 命令会在文件不存在时创建该 JSON 文件,追加新支出并保存更新后的列表,同时提供彩色确认信息。list 命令以表格格式显示已保存的支出,若未找到任何支出则发出警告。summary 命令计算并按类别打印支出总额及总计,结果以格式化的 JSON 输出。clear 命令在覆盖 expenses.json 文件(将其替换为空列表)之前会包含确认提示。penny.py 利用 Click 的分组功能,将所有命令统一在单个 penny 可执行文件下。pyproject.toml 配置了该分组,使得 Penny 可通过 pip install . 安装为全局可用的命令行工具。作者强调了 Click 声明式风格的优点、JSON 适用于简单数据存储的特性、用户体验细节的重要性,以及命令分组如何将脚本提升为 polished 的 CLI 应用程序。