如何在docopt中多次指定一个可选参数

时间:2013-12-09 10:04:56

标签: python docopt

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

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

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

2 个答案:

答案 0 :(得分:4)

供参考,官方文档可以是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']是所有指定注释的列表。

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

导致:

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

答案 1 :(得分:3)

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

my_program [comment]...

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