我有一个如下的测试代码,它应该采用位置参数file
或所有可选参数time
,expression
并且name
:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-t","--time")
parser.add_argument("-x","--expression")
parser.add_argument("-n","--name")
parser.add_argument("file")
print parser.parse_args()
以下组合应该有效
test.py filename
test.py -t 5 -x foo -n test
但不是这些:
test.py filename -t 5 # should raise error because the positional and the optional -t argument cannot be used together
test.py -t 5 -x foo # should raise an error because all three of the optional arguments are required
这个问题有什么简单的解决方案吗?