Python 命令行工具:argparse / click / typer 完整对比
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