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

Typer 命令行工具使用示例

Typer 命令行工具使用示例

示例1:简单问候程序

代码

import typerapp = typer.Typer()@app.command()
def greet(name: str):"""简单的问候命令"""typer.echo(f"Hello {name}!")if __name__ == "__main__":app()

使用方式

# 输入
python simple_greet.py John# 输出
Hello John!

示例2:带选项的问候程序

代码

import typerapp = typer.Typer()@app.command()
def greet(name: str,formal: bool = typer.Option(False, "--formal", "-f", help="使用正式问候")
):"""带选项的问候命令"""if formal:typer.echo(f"Good day, {name}.")else:typer.echo(f"Hello {name}!")if __name__ == "__main__":app()

使用方式

# 输入1
python option_greet.py Alice# 输出1
Hello Alice!# 输入2
python option_greet.py Alice --formal# 输出2
Good day, Alice.# 输入3
python option_greet.py --help# 输出3
Usage: option_greet.py [OPTIONS] NAME带选项的问候命令Arguments:NAME  [required]Options:--formal, -f  使用正式问候  [default: False]--help         Show this message and exit.

示例3:复杂问候程序(用户提供的示例)

代码

import typer
from typing import Optionalapp = typer.Typer()@app.command()
def main(name: str,age: Optional[int] = typer.Argument(None, help="用户的年龄"),formal: bool = typer.Option(False, "--formal", "-f", help="使用正式问候"),times: int = typer.Option(1, "--times", "-t", help="问候次数")
):"""一个简单的问候程序"""greeting = f"Good day, {name}" if formal else f"Hello {name}"if age:greeting += f", you are {age} years old"for _ in range(times):typer.echo(greeting)if __name__ == "__main__":app()

使用方式

# 输入1 - 基本问候
python complex_greet.py John# 输出1
Hello John# 输入2 - 带年龄的问候
python complex_greet.py John 25# 输出2
Hello John, you are 25 years old# 输入3 - 正式问候
python complex_greet.py John --formal# 输出3
Good day, John# 输入4 - 多次问候
python complex_greet.py John --times 3# 输出4
Hello John
Hello John
Hello John# 输入5 - 组合所有选项
python complex_greet.py John 25 --formal --times 2# 输出5
Good day, John, you are 25 years old
Good day, John, you are 25 years old# 输入6 - 查看帮助
python complex_greet.py --help# 输出6
Usage: complex_greet.py [OPTIONS] NAME [AGE]一个简单的问候程序Arguments:NAME  [required][AGE]  用户的年龄Options:--formal, -f      使用正式问候  [default: False]--times, -t INTEGER  问候次数  [default: 1]--help                Show this message and exit.

总结

  1. 位置参数:直接声明,如 name: str
  2. 可选参数:使用 Optionaltyper.Argument,如 age: Optional[int] = typer.Argument(None)
  3. 选项参数:使用 typer.Option,可以设置短选项和长选项
  4. 帮助文档:自动生成,可通过 --help 查看
  5. 参数顺序:位置参数必须按顺序提供,选项参数可以任意顺序

Typer 让创建功能丰富的命令行工具变得简单直观,只需使用 Python 类型提示即可自动处理参数解析和验证。

http://www.xdnf.cn/news/1464265.html

相关文章:

  • SQL Server全链路安全防护
  • 【Python】QT(PySide2、PyQt5):点击不同按钮显示不同页面
  • 中天互联:AI 重塑制造,解锁智能生产新效能​
  • [网鼎杯 2020 青龙组]AreUSerialz
  • Excel数据导出小记二: [大数据示例]
  • JP4-7-MyLesson后台前端(一)
  • yolov8部署在一台无显卡的电脑上,实时性强方案
  • 【分享】基于百度脑图,并使用Vue二次开发的用例脑图编辑器组件
  • 探讨Xsens在人形机器人研发中的四个核心应用
  • 产线相机问题分析思路
  • 基于单片机的六足机器人控制系统设计
  • HTML文本格式化标签
  • 嵌入式解谜日志—多路I/O复用
  • AI日报 - 2025年09月05日
  • 专题:2025电力行业5G工厂及绿色转型、市场机制研究报告|附100+份报告PDF、数据仪表盘汇总下载
  • Ubuntu22.04-ROS2下navgation2编译到运行
  • 机器学习入门,用Lima在macOS免费搭建Docker环境,彻底解决镜像与收费难题!
  • 基于muduo库的图床云共享存储项目(五)
  • webshell及冰蝎双击无法打开?
  • 如何将视频从 iPhone 转移到 Mac
  • 开学信息收集不再愁,这个工具太省心
  • JavaEE---7.文件操作和IO
  • The Algorithmic Foundations of Differential Privacy - 3(2)
  • Windows Server2012 R2 安装.NET Framework 3.5
  • 安科瑞基站智慧运维云平台:安全管控与节能降耗双效赋能
  • python库 Py2app 的详细使用(将 Python 脚本变为 MacOS 独立软件包)
  • MacOS 15.6 编译SDL3 Android平台多架构so库
  • 【NVIDIA AIQ】自定义函数实践
  • windows安装flash-attn记录
  • 在 Java Web 项目中优雅地实现验证码拦截与校验