# python_cli **Repository Path**: enzoism/python_cli ## Basic Information - **Project Name**: python_cli - **Description**: Python命令行开发工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-22 - **Last Updated**: 2025-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Python 命令行工具开发示例 这个项目展示了如何使用 Python 开发命令行工具,包含了三种主流方法的详细示例。 ## 📁 项目结构 ``` 20251217_3_Python_SetUp/ ├── README.md # 项目说明文档 ├── 未命名.md # 原始学习文档 ├── argparse_example.py # argparse 示例 ├── click_example.py # click 示例 ├── fire_example.py # fire 示例 ├── setup.py # 项目打包配置 ├── requirements.txt # 项目依赖 ├── test_all_examples.py # 综合测试脚本 ``` ## 🚀 快速开始 ### 安装依赖 ```bash pip3 install -r requirements.txt ``` ### 运行测试 ```bash python3 test_all_examples.py ``` ## 📚 示例说明 ### 1. argparse (Python 标准库) `argparse` 是 Python 标准库的一部分,无需额外安装。 **基本用法:** ```bash # 显示帮助 python3 argparse_example.py --help # 基本功能 python3 argparse_example.py "张三" --age 25 --city "北京" --verbose # 显示版本 python3 argparse_example.py --version ``` **特点:** - ✅ 无需额外安装 - ✅ 功能强大,支持复杂参数解析 - ✅ 自动生成帮助信息 - ❌ 代码相对冗长 ### 2. click (第三方库) `click` 是一个优雅的命令行工具创建库。 **基本用法:** ```bash # 显示主帮助 python3 click_example.py --help # 问候功能 python3 click_example.py greet "李四" --age 30 --city "上海" --verbose # 重复输出 python3 click_example.py echo --count 3 "Hello World" # 生成密码 python3 click_example.py generate-password --length 16 # 读取文件尾部 python3 click_example.py tail-file --lines 10 setup.py ``` **特点:** - ✅ 语法简洁优雅 - ✅ 支持子命令 - ✅ 内置彩色输出支持 - ✅ 自动帮助信息生成 - ❌ 需要额外安装 ### 3. fire (Google 开发) `fire` 是 Google 开发的快速命令行工具创建库。 **基本用法:** ```bash # 显示所有可用命令 python3 fire_example.py # 计算器功能 python3 fire_example.py calc add 10 20 python3 fire_example.py calc multiply 5 6 python3 fire_example.py calc divide 20 4 # 文本处理 python3 fire_example.py text reverse "hello world" python3 fire_example.py text word_count "this is a test" # 密码生成 python3 fire_example.py password generate --length 16 # 实用工具 python3 fire_example.py datetime now python3 fire_example.py coin python3 fire_example.py dice ``` **特点:** - ✅ 极简代码,自动转换 - ✅ 支持类、函数、模块 - ✅ 零学习成本 - ❌ 灵活性相对较低 ## 📦 项目打包 使用 `setup.py` 可以将项目打包成可安装的 Python 包: ```bash # 构建分发包 python3 setup.py sdist bdist_wheel # 安装到本地 pip3 install -e . # 上传到 PyPI (需要配置) python3 setup.py sdist bdist_wheel upload ``` ## 🧪 测试 运行综合测试脚本验证所有功能: ```bash python3 test_all_examples.py ``` 测试脚本会自动验证: - ✅ 所有示例的基本功能 - ✅ 帮助信息显示 - ✅ 错误处理 - ✅ 参数解析 ## 🛠️ 开发建议 ### 选择合适的工具 1. **argparse** - 适合: - 简单的命令行工具 - 不想引入额外依赖 - 需要精细控制参数解析 2. **click** - 适合: - 复杂的多命令工具 - 需要美观的输出 - 快速开发原型 3. **fire** - 适合: - 快速原型开发 - 将现有代码转为 CLI - 简单的内部工具 ### 最佳实践 1. **参数验证** - 始终验证用户输入 2. **帮助信息** - 提供清晰的帮助和示例 3. **错误处理** - 优雅地处理错误情况 4. **日志记录** - 添加适当的日志输出 5. **单元测试** - 为 CLI 工具编写测试 ## 📖 进阶学习 - **Rich 库** - 美化终端输出 - **Typer** - 现代化的 CLI 库(基于 click) - **Prompt Toolkit** - 交互式命令行界面 - **Cement** - CLI 应用程序框架 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 许可证 MIT License