Python 命令行工具:argparse / click / typer 完整对比

小飞兽 Python 5 次阅读 2026-07-24

argparse是Python标准库,click和typer是第三方库。本文用同一个例子对比三种方案的写法。

argparse:标准库方案

argparse.ArgumentParser创建解析器,add_argument添加参数。支持位置参数、选项参数(-o/--output)、类型转换(type=int)、choices限制取值、action=store_true布尔选项。

click:更简洁的命令行

@click.command()装饰器让函数变成命令,@click.argument和@click.option添加参数。自动生成帮助文档,支持彩色输出和进度条。适合生产级CLI工具。

typer:类型提示加持

基于click但利用Python类型提示,让CLI代码更简洁。typer.Option()指定选项,typer.Argument()指定位置参数。自动生成清晰的帮助信息。

运行效果

python tool.py data.txt -n 5 --verbose -o result.txt执行带参数命令,不同工具的输出格式略有差异但功能相同。

常见问题

Q1: argparse vs click vs typer怎么选?简单工具用argparse,生产级CLI用click,现代Python项目(3.10+)用typer。

Q2: 怎么实现子命令?使用@click.group()创建命令组,子命令用@cli.command()定义。

延伸阅读

  • Python logging模块
  • Python单元测试
  • Python打包分发

---

作者:小马 | 绍大技术网 shaoda.net