0

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

naval-fate --versionornaval-fate -v将返回 cli 版本,但是当尝试做让我们说naval-fate ship -v为了不同的目的时,它会自动返回与前两个命令相同的结果。

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

谢谢

4

1 回答 1

0

您可以通过简单地在文档字符串中自己提及它作为一个选项来阻止 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”

于 2016-11-10T21:49:15.753 回答