docopt将任何-v解释为版本

时间:2016-06-22 20:20:45

标签: python command-line-interface docopt

我正在使用docopt创建一个cli,并且遇到以下问题(我将从他们的naval_fate示例cli中引入示例)

naval-fate --versionnaval-fate -v将返回cli版本,但是当我尝试将naval-fate ship -v用于不同目的时,它会自动返回与前两个命令相同的结果。

有没有办法阻止docopt这样做?

由于

1 个答案:

答案 0 :(得分:0)

您可以通过在docstring中自行提及,作为一个选项来阻止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运行它将生成字符串"详细消息"