我正在使用 docopt 创建一个 cli,并遇到以下问题(我将从他们的 naval_fate 示例 cli 中引入示例)
naval-fate --version
ornaval-fate -v
将返回 cli 版本,但是当尝试做让我们说naval-fate ship -v
为了不同的目的时,它会自动返回与前两个命令相同的结果。
有没有办法阻止 docopt 这样做?
谢谢
我正在使用 docopt 创建一个 cli,并遇到以下问题(我将从他们的 naval_fate 示例 cli 中引入示例)
naval-fate --version
ornaval-fate -v
将返回 cli 版本,但是当尝试做让我们说naval-fate ship -v
为了不同的目的时,它会自动返回与前两个命令相同的结果。
有没有办法阻止 docopt 这样做?
谢谢
您可以通过简单地在文档字符串中自己提及它作为一个选项来阻止 docopt 解析-v
为一个特殊选项。例如,假设您想使用-v
详细程度:
!/usr/bin/python
"""
Usage: ./ [options]
Options:
-v show verbose printing
"""
from docopt import docopt
arguments = docopt(__doc__)
if arguments["-v"] == True:
print "A verbose message"
在这种情况下,不带参数运行脚本不会执行任何操作,而带参数运行-v
将生成字符串“A verbose message”