当前位置: 首页 > news >正文

Python命令行工具Click

Python 命令行工具-Click

命令行工具click的编译指南

1-妇女之友-click

1-脚本代码

importclick# 导入click库,用于创建命令行界面@click.command()# 使用click装饰器将函数标记为命令行命令@click.argument("name")# 定义位置参数name,用户必须提供@click.option("-a","--age",type=int,help="你的年龄")# 定义可选参数age,类型为整数,并提供帮助信息defgreet(name,age):"""一个简单的命令行工具"""click.echo(f"你好,{name}!")# 使用click.echo输出问候语,比print更兼容ifage:# 如果提供了age参数click.echo(f"你今年{age}岁了。")# 输出年龄信息if__name__=="__main__":# 当脚本直接运行时执行greet()# 调用greet函数启动命令行程序

2-直接测试

# 基本用法(base)MacBook-Pro:python_setup_demo rong$ python click_simple.py 张三 你好,张三!# 带可选参数(base)MacBook-Pro:python_setup_demo rong$ python click_simple.py 张三 --age25你好,张三! 你今年25岁了。# 查看帮助(base)MacBook-Pro:python_setup_demo rong$ python click_simple.py --help Usage: click_simple.py[OPTIONS]NAME 一个简单的命令行工具 Options: -a, --age INTEGER 你的年龄 --help Show this message and exit.

3-安装测试

# 1-安装包(base)MacBook-Pro:python_setup_demo rong$ pipinstall.Lookinginindexes: https://pypi.tuna.tsinghua.edu.cn/simple Processing /Users/rong/Documents/EnzoApplication/WorkSpace/Python/20251222_Python_Setup/python_setup_demo02 Preparing metadata(setup.py)...doneRequirement already satisfied: click>=8.0.0in/Applications/0ENZO/Installs/anaconda3/anaconda3/lib/python3.10/site-packages(from python-cli-examples==1.0.0)(8.0.4)Requirement already satisfied: fire>=0.4.0in/Applications/0ENZO/Installs/anaconda3/anaconda3/lib/python3.10/site-packages(from python-cli-examples==1.0.0)(0.7.1)Requirement already satisfied: termcolorin/Applications/0ENZO/Installs/anaconda3/anaconda3/lib/python3.10/site-packages(from fire>=0.4.0->python-cli-examples==1.0.0)(3.2.0)Building wheelsforcollected packages: python-cli-examples Building wheelforpython-cli-examples(setup.py)...doneCreated wheelforpython-cli-examples:filename=python_cli_examples-1.0.0-py3-none-any.whlsize=3088sha256:1e38d417b4c61a60b3acf3ecc8babb938f239f182dbd9b86b67640089ab52861 Storedindirectory: /private/var/folders/kt/jy68vj1523dclg3py07q6zxc0000gn/T/pip-ephem-wheel-cache-5u7bw0u5/wheels/3d/19/5b/66b6bb4de747fb17d2199f8aa5945077a5084fa9a196f1092c Successfully built python-cli-examples Installing collected packages: python-cli-examples Successfully installed python-cli-examples-1.0.0# 2-测试argparse命令(base)MacBook-Pro:python_setup_demo rong$ argparse-demo 测试用户 --age30--city 上海 正在执行 argparse 示例程序... 你好,测试用户! 你今年30岁了。 你正值壮年! 你来自上海# 3-测试click命令(base)MacBook-Pro:python_setup_demo rong$ click-demo 张三 --age25你好,张三! 你今年25岁了。# 4-验证两个命令都已安装(base)MacBook-Pro:python_setup_demo rong$whichargparse-demo /Applications/0ENZO/Installs/anaconda3/anaconda3/bin/argparse-demo(base)MacBook-Pro:python_setup_demo rong$whichclick-demo /Applications/0ENZO/Installs/anaconda3/anaconda3/bin/click-demo# 5-卸载包(base)MacBook-Pro:python_setup_demo rong$ pip uninstall python-cli-examples Found existing installation: python-cli-examples1.0.0 Uninstalling python-cli-examples-1.0.0: Would remove: /Applications/0ENZO/Installs/anaconda3/anaconda3/bin/argparse-demo /Applications/0ENZO/Installs/anaconda3/anaconda3/bin/click-demo /Applications/0ENZO/Installs/anaconda3/anaconda3/lib/python3.10/site-packages/argparse_01_simple.py /Applications/0ENZO/Installs/anaconda3/anaconda3/lib/python3.10/site-packages/click_simple.py /Applications/0ENZO/Installs/anaconda3/anaconda3/lib/python3.10/site-packages/python_cli_examples-1.0.0.dist-info/* Proceed(Y/n)? y Successfully uninstalled python-cli-examples-1.0.0

4-Click库优势

相比argparse,Click库具有以下优势:

  1. 装饰器语法:代码更简洁易读
  2. 类型提示:自动处理参数类型转换
  3. 帮助信息:自动生成完整的帮助文档
  4. 错误处理:内置更好的错误提示
  5. 可扩展性:支持子命令和复杂的应用结构

5-项目结构更新

python_setup_demo02/ ├── setup.py # 包配置文件(已更新支持两个工具) ├── argparse_01_simple.py # argparse示例脚本 ├── click_simple.py # click示例脚本 └── BUILD_GUIDE.md # 本编译指南(已更新)

6-支持的所有命令

安装后支持两个命令行工具:

  • argparse-demo: 基于argparse库的演示工具

    • 用法:argparse-demo <name> [options]
    • 支持: --age, --city, --verbose, --version
  • click-demo: 基于click库的演示工具

    • 用法:click-demo <name> [options]
    • 支持: --age

http://www.cnnetsun.cn/news/185595.html

相关文章:

  • 如何在macOS上完美运行ComfyUI-Manager?终极兼容性实战指南
  • XHS-Downloader终极指南:轻松下载小红书无水印内容
  • SketchUp STL插件:从3D设计到实体打印的5个高效秘诀
  • ComfyUI模型路径配置终极指南:3步解决工作流验证失败问题
  • HarmonyOS应用开发—页面路由
  • 大文件上传:秒传、断点续传、分片上传
  • WindowsCleaner:一键解决C盘爆红的智能清理神器
  • 小红书无水印下载器完整教程:从零开始快速掌握
  • 深蓝词库转换:彻底告别输入法切换困扰的终极解决方案
  • vivado2018.3安装步骤从零实现:适合入门者的实践指导
  • 原神帧率解锁:如何突破60帧限制,释放显示器真正潜力
  • 快速解决C盘爆满:WindowsCleaner终极使用教程
  • Packet Tracer使用教程:手把手教你保存与导出项目
  • Windows系统优化实战:三步彻底解决C盘爆满问题
  • 全网围观的2025大语言模型回顾:AI大牛karpathy总结了六大关键节点
  • c# Visual Studio基础语法-循环
  • ViGEmBus虚拟游戏控制器驱动:完整部署与配置指南
  • 深蓝词库转换:跨平台输入法词库同步的完整解决方案
  • 微信网页版无法访问?3分钟解决你的所有烦恼!
  • 深蓝词库转换:跨平台词库互通终极方案
  • ComfyUI-Manager路径冲突实战:从下载到验证的完整解决方案
  • 零基础入门:Arduino Uno R3开发板连接心率传感器
  • Godot PCK文件终极解包指南:突破资源提取技术壁垒
  • C语言内存函数
  • Zepp Life自动刷步数终极指南:3步搞定微信运动同步
  • 工业设备中RS232引脚功能解析:深度剖析通信标准
  • 使用MTKClient处理MTK设备BROM模式连接异常的技术实践
  • 抖音直播数据实时采集:构建你的智能监控分析系统
  • 深蓝词库转换:轻松实现跨平台输入法词库迁移解决方案
  • BBDown终极指南:10个技巧让你的B站视频永久保存