在我的程序中,有2个命令行选项a1 or a2
和b1 or b2
。如果用户想要使用此编程,他/她应该使用这些选项之一。例如,
./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
模块实现这些?
答案 0 :(得分:0)
您想要添加两个mutually-exclusive groups,required=True
。 a1
不能与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
中的一个。
{{1}}