【问题标题】:How to specify one optional argument several times in docopt如何在docopt中多次指定一个可选参数
【发布时间】:2014-03-07 09:42:40
【问题描述】:

我想以一种方式设计我的命令行应用程序,让我们称之为 comment,可以多次指定一个选项,例如,

$ ./my_app.py --comment="Comment 1" --comment="Comment 2"

这可以用 docopt 完成吗?我检查了 docopt 主页,但找不到对同一可选参数多次出现的任何引用。

【问题讨论】:

  • 我不确定 docopt,但使用 argparse 你可以使用 append action

标签: python docopt


【解决方案1】:

供参考,官方文档可以是found here at github

要回答您的具体问题,您可以使用椭圆 ... 和可选选项 [--my-option],并指定您的选项带有参数。

[--my-option=ARG]...[--my-option=<arg>]...

例子:

"""
Usage:
    my_program [--comment=ARG]... FILE

Arguments:
    FILE       An argument for passing in a file.

Options:
    --comment  Zero or more comments
"""

通过将其指定为[--comment=<arg>]...,您可以确保 opt['--comment'] 是所有指定 cmets 的列表。

执行中:my_program --comment=ASDF --comment=QWERTY my_file

导致:

if __name__ == '__main__':
    opts = docopt(__doc__)
    opts['--comment'] == ['ASDF', 'QWERTY']
    opts['FILE'] == 'my_file'

【讨论】:

    【解决方案2】:

    您可以使用... 表示重复元素,使用[ ] 表示它是可选的:

    my_program [comment]...
    

    这表示comment 是可选的,可以重复。

    【讨论】:

    • 但省略了--comment 部分:在我的情况下,我还有其他必需的位置参数,这很难辨别,并且可能会模棱两可。 (例如,我想要./myprog.py --comment "ASDF" --comment "QWERTY" my_file
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多