argparse添加强制参数,可能没有add_subparsers

时间:2017-12-14 13:44:16

标签: python argparse

以下是代码段 -

parser = argparse.ArgumentParser()
#External Modules
parser.add_argument('--foo', action='store_true', dest='FOO_OPTION', help='builds foo')
parser.add_argument('--bar', action='store_true', dest='BAR_OPTION', help='builds bar')
parser.add_argument('--xyz', action='store_true', dest='XyZ_OPTION', help='builds xyz')

调用命令

program.py --foo
program.py --bar 
program.py --xyz

完美无缺。

然而,还有另一个强制性争论--foo like

program.py --foo -d /usr/local/include

这个额外的争论仅适用于--foo。如何以最简单的方式实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以使用nargs参数,但需要注意。

例如,

parser.add_argument('--foo', nargs=2)
args = parser.parse_args()
print(args.foo)

然后,python program.py --foo bar baz提供['bar', 'baz']

需要注意的是,由于破折号,您无法使用-d作为foo的值。