-1

在我的程序中,有 2 个命令行选项a1 or a2b1 or b2. 如果用户想使用这个 prog,他/她应该使用这些选项之一。例如,

./script.py -a1 val  -b1 val2

或者

./script.py -a1 val -b2 val2

或者

./script.py -a2 val -b1 val2

或者

./script.py -a2 val -b2 val2

所以他/她可以使用这些选项 a1|a2 或 b1|b2 之一。如何使用 argparse 模块处理此命令行参数并获取这些值?

其他选项是该程序为用户提供了 3 个选项。-a1、-a2​​ 和 -a3。但是 -a1 采用 4 个值,如下所示,

./script.py -a1 val1 val2 val3 val4

并且 -a2 采用 2 个值,如下所示,

./script.py -a2 val1 val2

并且 -a3 取 1 个值,如下所示,

./script.py -a3 val1

所以我想开发处理这些命令行选项和值的程序,我如何使用argparse模块来实现这些?

4

1 回答 1

0

您想添加两个互斥组,都required=Truea1不能与 一起出现a2,对于b组也是如此。

如果两者都是required,那么您必须得到恰好其中之一a,并且恰好是其中之一b

parser = argparse.ArgumentParser()
group1 = parser.add_mutually_exclusive_group(required=True)
group1.add_argument('--a1')
group1.add_argument('--a2')
#likewise for group2
于 2013-10-31T09:24:31.870 回答