我想以一种方式设计我的命令行应用程序,让我们称之为 comment ,可以多次指定,例如,
$ ./my_app.py --comment="Comment 1" --comment="Comment 2"
这可以用docopt完成吗?我检查了docopt主页,但找不到任何对同一可选参数的多次出现的引用。
答案 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
是可选的,可以重复。