我正在使用docopt创建一个cli,并且遇到以下问题(我将从他们的naval_fate示例cli中引入示例)
naval-fate --version
或naval-fate -v
将返回cli版本,但是当我尝试将naval-fate ship -v
用于不同目的时,它会自动返回与前两个命令相同的结果。
有没有办法阻止docopt这样做?
由于
答案 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
运行它将生成字符串"详细消息"