使用nargs ='?'

时间:2015-05-21 19:48:00

标签: python argparse

我正在尝试使用argparse来处理几个可选参数。每个参数也都有一个可选参数。例如,我有一个名为runner.py的脚本。我想调用runner.py --functionals --capacity --performance,我希望它使用我设置的const值。这部分正在运作。我还希望能够指定诸如--functionals test1 --performance test2和--capacity test3之类的参数。而不是const,现在我除了具有给定值的参数。对于前函数应该是test1,性能测试2等。后一种情况的结果是得到:-c:error:argument --performance:不允许带参数--functionals

解析器的代码如下所示:

def get_parser():
parser = argparse.ArgumentParser(add_help=False)
required_arguments = parser.add_argument_group(title = "required arguments")
test_arguments = parser.add_mutually_exclusive_group()

test_arguments.add_argument( 
    '--capacity',
    nargs='?',
)
test_arguments.add_argument( 
    '--functionals',
    nargs='?',                      
)
test_arguments.add_argument( 
    '--performance',
    nargs='?',
)
return parser

1 个答案:

答案 0 :(得分:-1)

我的错误是我使用mutually exclusive group。我应该使用常规参数组。