【问题标题】:docopt interprets any -v as versiondocopt 将任何 -v 解释为版本
【发布时间】:2016-11-11 05:49:15
【问题描述】:

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

naval-fate --versionnaval-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”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-12
      • 2019-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多