使用Argparse的add_subparsers()函数定义子解析器,并在add_argument()函数中为每个子解析器添加自己的参数。
以下是示例代码:
import argparse
# 创建ArgumentParser对象并添加一个子解析器
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers()
# 创建第一个子解析器
parser_a = subparsers.add_parser('cmdA')
parser_a.add_argument('-f', '--file', help='file path')
parser_a.set_defaults(which='cmdA')
# 创建第二个子解析器
parser_b = subparsers.add_parser('cmdB')
parser_b.add_argument('-n', '--name', help='name')
parser_b.set_defaults(which='cmdB')
# 解析命令行参数并执行相应的命令
args = parser.parse_args()
if args.which == 'cmdA':
print('cmdA executed.')
# 处理cmdA的逻辑
elif args.which == 'cmdB':
print('cmdB executed.')
# 处理cmdB的逻辑
在这个示例中,我们使用了add_subparsers()函数创建了一个子解析器。我们还使用add_parser()函数为每个子解析器创建了一个命令。通过set_defaults()方法,我们可以指定哪个子解析器应该被执行。最后,我们解析了命令行参数,并使用if语句确定哪个子解析器应该被执行。