Python 中如何解析命令行参数?
在 Python 中,解析命令行参数最推荐使用的是标准库中的 argparse。它功能强大、使用简洁,适用于从简单脚本到复杂 CLI 工具的参数解析。
一、使用 argparse 的基本方法
示例:编写一个带参数的命令行工具
import argparse
# 创建解析器对象
parser = argparse.ArgumentParser(description="示例:加法命令行工具")
# 添加参数
parser.add_argument('a', type=int, help="第一个整数")
parser.add_argument('b', type=int, help="第二个整数")
# 可选参数
parser.add_argument('--verbose', action='store_true', help="显示详细信息")
# 解析参数
args = parser.parse_args()
# 执行逻辑
result = args.a + args.b
if args.verbose:
print(f"正在将 {args.a} 与 {args.b} 相加,结果为 {result}")
else:
print(result)
运行方式:
python add.py 3 5
# 输出:8
python add.py 3 5 --verbose
# 输出:正在将 3 与 5 相加,结果为 8
二、常用参数选项说明
| 方法 | 说明 |
|---|---|
type=int | 指定参数类型 |
default=xxx | 设置默认值 |
required=True | 必须提供 |
choices=[a, b, c] | 限制参数值范围 |
action='store_true' | 布尔开关参数(如 --verbose) |
nargs='*' / '+' / '?' | 指定参数数量(多个、一个或可选) |
三、进阶:子命令解析(如 Git 命令风格)
import argparse
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(dest='command')
# 添加子命令
add_parser = subparsers.add_parser('add')
add_parser.add_argument('x', type=int)
add_parser.add_argument('y', type=int)
args = parser.parse_args()
if args.command == 'add':
print(args.x + args.y)
python tool.py add 4 5
# 输出:9
四、替代方案简述
| 库名 | 特点 |
|---|---|
argparse | 官方标准库,功能强大,文档丰富 ✅ 推荐 |
click | 更适合复杂 CLI,语法优雅(基于装饰器) |
typer | 基于 click 和 Python 3.6+ 的类型提示,现代简洁 |
sys.argv | 最基础方式,手动解析参数(不推荐复杂应用使用) |
五、最基础方式:使用 sys.argv
import sys
a = int(sys.argv[1])
b = int(sys.argv[2])
print(a + b)
但不具备 --help、错误提示、类型检查等能力。
官方文档 & 出站链接:
总结表
| 方法 | 推荐场景 | 特点 |
|---|---|---|
argparse | 大多数脚本 & 工具 ✅ | 内置库,强大易用 |
click | 构建 CLI 工具 | 装饰器语法,用户体验好 |
typer | 快速现代 CLI,基于类型提示 | 新项目推荐 |
sys.argv | 学习 / 临时脚本 | 基础直接,功能弱 |
更多详细内容请关注其他相关文章!