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



以下是代码段 -

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,例如

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

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

您可以使用警告使用nargs参数。

例如,

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

然后,python program.py --foo bar baz给出['bar', 'baz']

警告是,由于破折号,您无法将-d用作FOO的值。

最新更新