14.1.6.3 参数组
argparse将参数定义合并为“组”。默认地,它会使用两个组,一个对应选项,另一个对应必要的基于位置的参数。
import argparse
parser = argparse.ArgumentParser(description='Short sample app')
parser.add_argument('--optional',action="store_true",
default=False)
parser.add_argument('positional',action="store")
print(parser.parse_args())
从帮助输出的“位置参数”(positional argument)和"可选参数"(optional argument)部分可以反映这种分组。
可以调整这种分组,使帮助更有条理,并将相关的选项或值放在一起。例如,可以使用定制组重新编写前面的共享选项示例,使得认证选项在帮助中一起出现。用add_argument_group()创建"authentication"组,然后将与认证有关的各个选项增加到这个组,而不是增加到基解析器。
import argparse
parser = argparse.ArgumentParser(add_help=False)
group = parser.add_argument_group('authentication')
group.add_argument('--user',action="store")
group.add_argument('--password',action="store")
如果程序使用了基于组的父解析器,那么会像前面一样把它列在parents值中。
import argparse
import argparse_parent_with_group
parser = argparse.ArgumentParser(
parents=[argparse_parent_with_group.parser],
)
parser.add_argument('--local-arg',
action="store_true",
default=False)
print(parser.parse_args())
现在帮助输出会把认证选项显示在一起。