我'd like to design my command line application in a way that one option, let' s称之为评论,可以多次指定,例如,
$ ./my_app.py --comment="Comment 1" --comment="Comment 2"
可以用docopt完成吗?我查看了docopt主页,但找不到对同一可选参数的多个出现的任何引用 .
作为参考,官方文档可以是found here at github .
要回答您的具体问题,可以使用椭圆 ... 和您的可选选项 [--my-option] ,并指定您的选项采用参数 .
...
[--my-option]
即 [--my-option=ARG]... 或 [--my-option=<arg>]...
[--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']是所有指定注释的列表 .
[--comment=<arg>]...
执行: my_program --comment=ASDF --comment=QWERTY my_file
my_program --comment=ASDF --comment=QWERTY my_file
导致:
if __name__ == '__main__': opts = docopt(__doc__) opts['--comment'] == ['ASDF', 'QWERTY'] opts['FILE'] == 'my_file'
您可以使用 ... 表示重复元素,使用 [ ] 表示它是可选的:
[ ]
my_program [comment]...
这表示 comment 是可选的,可以重复 .
comment
2 回答
作为参考,官方文档可以是found here at github .
要回答您的具体问题,可以使用椭圆
...
和您的可选选项[--my-option]
,并指定您的选项采用参数 .即
[--my-option=ARG]...
或[--my-option=<arg>]...
例:
通过将其指定为
[--comment=<arg>]...
,您可以确保opt ['--comment']是所有指定注释的列表 .执行:
my_program --comment=ASDF --comment=QWERTY my_file
导致:
您可以使用
...
表示重复元素,使用[ ]
表示它是可选的:这表示
comment
是可选的,可以重复 .