2

我通常docopt用来处理命令行参数,但现在我遇到了一个参数被意外解析的情况(这一定是我的一个愚蠢的错误,因为它总是很好用)

"""
API to do something

Usage:
    api.py [options]

Options:
    --port PORT     port to listen on   [default: 64645]
    --url   URL     elasticsearch address   [default: http://elk.example.com:9200]
"""

这是通过conf = docopt.docopt(__doc__)调用解析的,之后我conf设置为

{
    '--port': '64645',
    '--url': False
}

--url部分不正确,但我不明白为什么。

4

2 回答 2

4

--url是因为and之间的空格太多URL,试试:

"""
API to do something

Usage:
    api.py [options]

Options:
    --port PORT     port to listen on   [default: 64645]
    --url URL       elasticsearch address   [default: http://elk.example.com:9200]
"""
于 2016-10-13T07:39:34.397 回答
0

取自官方文档

要指定一个选项有一个参数,请在一个空格或“=”符号之后放置一个描述该参数的词。

使用两个空格将选项与其非正式描述分开。

于 2016-11-10T21:57:26.813 回答