-
参数组
ArgumentParser.add_argument_group(title=None, description=None)
默认情况下,当显示帮助消息时,ArgumentParser将命令行参数分组为“位置参数”和“可选参数”。
当比这个默认参数有更好的参数概念分组时,可以使用add_argument_group()方法创建适当的组:>>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)>>> group = parser.add_argument_group('group')>>> group.add_argument('--foo', help='foo help')>>> group.add_argument('bar', help='bar help')>>> parser.print_help()usage: PROG [--foo FOO] bargroup: bar bar help --foo FOO foo help
add_argument_group()方法返回一个参数组对象,它具有add_argument()方法,就像常规的ArgumentParser一样。
将参数添加到组中时,解析器将其视为与普通参数类似,但将参数显示在单独的组中以获取帮助消息。 add_argument_group()方法接受可用于定制此显示的标题和描述参数:>>> parser = argparse.ArgumentParser(prog='PROG', add_help=False)>>> group1 = parser.add_argument_group('group1', 'group1 description')>>> group1.add_argument('foo', help='foo help')>>> group2 = parser.add_argument_group('group2', 'group2 description')>>> group2.add_argument('--bar', help='bar help')>>> parser.print_help()usage: PROG [--bar BAR] foogroup1: group1 description foo foo helpgroup2: group2 description --bar BAR bar help
任何不在用户定义组中的参数将返回到通常的“位置参数”和“可选参数”部分
-
互斥组
ArgumentParser.add_mutually_exclusive_group(required=False)
创建一个互斥的组。 argparse将确保在命令行上只存在互斥组中的一个参数:
>>> parser = argparse.ArgumentParser(prog='PROG')>>> group = parser.add_mutually_exclusive_group()>>> group.add_argument('--foo', action='store_true')>>> group.add_argument('--bar', action='store_false')>>> parser.parse_args(['--foo'])Namespace(bar=True, foo=True)>>> parser.parse_args(['--bar'])Namespace(bar=False, foo=False)>>> parser.parse_args(['--foo', '--bar'])usage: PROG [-h] [--foo | --bar]PROG: error: argument --bar: not allowed with argument --foo
add_mutually_exclusive_group()方法也接受一个必需的参数,以表明至少需要一个互斥的参数:
>>> parser = argparse.ArgumentParser(prog='PROG')>>> group = parser.add_mutually_exclusive_group(required=True)>>> group.add_argument('--foo', action='store_true')>>> group.add_argument('--bar', action='store_false')>>> parser.parse_args([])usage: PROG [-h](--foo | --bar)PROG: error: one of the arguments --foo --bar is required
目前互斥的参数组不支持add_argument_group()的标题和描述参数