为什么参数被解析为布尔值?
Why is a parameter parsed as a bool?
我通常使用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
部分不正确,但我不明白为什么。
是因为--url
和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]
"""
To specify that an option has an argument, put a word describing that argument after one space or "=" sign.
Use two spaces to separate options with their informal description.
我通常使用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
部分不正确,但我不明白为什么。
是因为--url
和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]
"""
To specify that an option has an argument, put a word describing that argument after one space or "=" sign.
Use two spaces to separate options with their informal description.