Python argparse:可选参数组

时间:2019-07-08 11:49:22

标签: python python-3.x argparse

我希望能够使一组参数与另一个参数(或另一个参数组)互斥。像这样:

program.py [-a alpha] [-b -c gamma -d delta]

要求是:

  • 您可以使用-a-b(或同时使用或不使用)
  • 如果您使用-b,则还必须使用-c-d

有可能吗?我想我可以使用sub_parser,但不确定如何…

1 个答案:

答案 0 :(得分:2)

虽然答案链接here对于python2.X很可能,但根据我的研究,它仍然成立。调整答案:

if args.b and (args.c is None or args.d is None):
parser.error("--b requires --c and --d.")