【问题标题】:docopt interprets any -v as versiondocopt 将任何 -v 解释为版本
【发布时间】:2016-11-11 05:49:15
【问题描述】:
我正在使用 docopt 创建一个 cli,但遇到以下问题(我将从他们的 naval_fate 示例 cli 中引入示例)
naval-fate --version 或 naval-fate -v 将返回 cli 版本,但是当尝试使用 naval-fate ship -v 用于不同目的时,它会自动返回与前两个命令相同的结果。
有没有办法阻止 docopt 这样做?
谢谢
【问题讨论】:
标签:
python
command-line-interface
docopt
【解决方案1】:
您可以阻止 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”