在简单情况下,Python docopt可以正常工作,但是在这种情况下,尽管带有参数,它仍会说-c requires argument
。
最小代码(Python 3.6):
'''Usage:
test_docopt.py x YYY ZZZ [-a AAA] [-b BBB] [-c CCC]
Options:
-a AAA description
-b BBB description
-c CCC description'''
from docopt import docopt
print(docopt(__doc__))
结果:
C:\>python3 test_docopt.py x foo bar -a alpha -b bravo -c charlie
-c requires argument
Usage:
test_docopt.py x YYY ZZZ [-a AAA] [-b BBB] [-c CCC]
C:\>
我在做什么错了?
答案 0 :(得分:0)
无法在Linux中复制:
$ python3 test_docopt.py x foo bar -a alpha -b bravo -c charlie
{'-a': 'alpha',
'-b': 'bravo',
'-c': 'charlie',
'YYY': 'foo',
'ZZZ': 'bar',
'x': True}
无论哪种方式,我都建议使用python的标准argparse。