通过查看docopt文档和示例,我似乎找不到这个功能,但我觉得它应该存在,所以我想我应该要求确认。
我正在为Python使用docopt,并且希望能够允许任意选项。用例是一个命令行模板实用程序-所以任意的键值会很方便。
"""Templator
Usage:
templator <template> [--arbitrary-option=<value>]...
"""希望这个例子能说明我所追求的东西。也许像--*=<value>这样的东西会是编写它的另一种方式。
编辑:
这是我目前的解决方案,它采用键值对。但是,这些是由空格分隔的,因此很难弄清楚什么是长语句的键和值。
templator <template> (<key> <value>)...
然后在python脚本中(对于对此解决方案感兴趣的任何人)
arguments = docopt(__doc_)
arbitrary_kwargs = dict(zip(arguments['<key>'], arguments['<value>']))拥有key=value语法将是最理想的-如果可能的话。
发布于 2017-09-10 00:15:02
也许你可以用
"""Templator
Usage:
templator <template> [-c <name>=<value>]...
"""这就是docopt/examples/git/git.py所做的。
下面是一个测试示例:
bash-3.2$ cat test.py
""" Usage:
Templator [-c <name>=<value>]...
"""
import sys, docopt
args = docopt.docopt(__doc__, version='0.0.1-alpha')
print str(args)
bash-3.2$ python test.py
{'-c': 0,
'<name>=<value>': []}
bash-3.2$ python test.py -c foo=1
{'-c': 1,
'<name>=<value>': ['foo=1']}
bash-3.2$ python test.py -c foo=1 -c baz=2
{'-c': 2,
'<name>=<value>': ['foo=1', 'baz=2']}https://stackoverflow.com/questions/44457671
复制相似问题