Python 中如何解析命令行参数?
                           
天天向上
发布: 2025-05-29 23:56:41

原创
670 人浏览过

在 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学习 / 临时脚本基础直接,功能弱

更多详细内容请关注其他相关文章!

发表回复 0

Your email address will not be published. Required fields are marked *