为什么 Python docopt 在这里说"-c requires argument"?



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:>

我做错了什么?

无法在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。

相关内容