我有两个参数说用户名和密码
parser.add_argument('-a1', '--arg1')
parser.add_argument('-a2', '--arg2')
我想强制用户根据他为参数arg2
传递的值输入a1
;例如,当给出xyz
时:
例如:
myscript.py -a1 abc # OK
myscript.py -a1 xyz # Error: please enter -a2 value
答案 0 :(得分:1)
argparse
无法构建此类复杂的依赖项。
解析后,您必须对此进行单独测试;如果不符合您的具体条件,只需使用您的错误消息调用ArgumentParser.error()
method:
args = parser.parse_args()
if args.a1 == 'xyz':
parser.error('please enter -a2 value')
答案 1 :(得分:0)
一种丑陋的方式是检查arg1是否是' xyz'然后拨打'输入()'那里会要求用户输入arg2的方法。