首页 > 解决方案 > 为什么 Python docopt 在这里说“-c 需要参数”?

问题描述

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

我究竟做错了什么?

标签: pythonwindowsdocopt

解决方案


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


推荐阅读