1. argparse介绍
argparse是Python标准库中用于解析命令行参数的模块。它提供了一种简洁而灵活的方式来处理命令行参数,包括选项(可选参数)和位置参数(必需参数)
2. argparse基本使用
点击查看代码
import argparse
# 1. 创建ArgumentParser对象,在创建ArgumentParser对象时,可以传入一个可选的description参数,用于描述你的程序的功能和用法。
parser = argparse.ArgumentParser(description='Description of your program')
# 2. 添加命令行参数
# 2.1 添加位置参数
# 位置参数指的是位置参数是指在命令行中没有使用选项标志(如-或--)的参数,它们根据在解析器中定义的顺序进行解析。所以位置参数在传入时要根据定义顺序传入
parser.add_argument('name', help="Name of the person")
# 2.2 添加可选参数
# 以下-g和--greeting的关系:
# -g: 短选项。使用方式示例:-g "Hello" 或 -gHello
# -greeting: 长选项。似乎用方式示例:--greeting "Hello" 或 --greeting=Hello
# -g和--greeting两种方式可以同时存在,也可以只选其一。
parser.add_argument('-g', '--greeting', help='Greeting message')
# 3. 解析命令行参数
args = parser.parse_args() # parse_args()方法会解析命令行参数,并返回一个包含解析结果的命名空间对象
# 4. 使用解析结果
# 可以通过访问命名空间对象的属性来获取解析后的参数值。
print(args.name)
print(args.greeting)
print(args.g)
3. 子命令解析器
点击查看代码示例
import argparse
# 创建解析器对象
parser = argparse.ArgumentParser()
# 创建子命令解析器对象
subparsers = parser.add_subparsers(dest='command')
# 创建子命令 'add' 的解析器
add_parser = subparsers.add_parser('add')
add_parser.add_argument('numbers', type=int, nargs='+', help='numbers to add')
# 创建子命令 'multiply' 的解析器
multiply_parser = subparsers.add_parser('multiply')
multiply_parser.add_argument('numbers', type=int, nargs='+', help='numbers to multiply')
# 解析命令行参数
args = parser.parse_args()
# 根据命令调用相应的处理函数
if args.command == 'add':
result = sum(args.numbers)
print(f'Sum: {result}')
elif args.command == 'multiply':
result = 1
for num in args.numbers:
result *= num
print(f'Product: {result}')
点击查看示例运行结果
$ python argparse_for_subparser.py add 2 3 4
Sum: 9
$ python argparse_for_subparser.py multiply 2 3 4
Product: 24