我想以一种可以多次指定一个选项(我们称之为comment )的方式设计我的命令行应用程序,例如,
$ ./my_app.py --comment="Comment 1" --comment="Comment 2"
这可以用docopt完成吗?我检查了 docopt 主页,但找不到对同一可选参数多次出现的任何引用。
作为参考,可以在 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'
您可以使用...
来指示重复元素并[ ]
指示它是可选的:
my_program [comment]...
这表示comment
是可选的并且可以重复。