我正在使用docopt创建一个cli,并遇到以下问题(我将从他们的naval_fate示例cli中引入示例)
naval-fate --version
或naval-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
运行脚本将生成字符串"详细消息">