我想用docopt解析一个具有多个值的可选参数。下面是示例用法。
my_program.py --loc pcg acc
# or anything that achieve similar result在解析之后,我希望得到如下所示的python列表
arguments["--loc"] = ["pcg", "acc"]我浏览了一下,通过传递nargs参数,发现这在argparse中是否可行。
我在docopt中找不到任何类似的方法,这在docopt中可行吗?如果不是,还有什么选择呢?
我能想到的另一种选择是让用户指定逗号分隔的值,并在解析过程中手动拆分它,如下所示。
my_program.py [--loc=<comma_separated_str>]在python代码中
locs = arguments["--loc"].split(",") if arguments["--loc"] else []然而,这看起来很丑陋,所以我正在寻找一种合适的方法来使用docopt。
发布于 2019-10-11 03:16:48
一种方法是使用省略号(...)运算符,因此一个选项可以用方括号重复零次或多次,或用括号重复一次或多次。例如
"""Usage: my_program.py --help
my_program.py [--loc=<loc>]...
"""
from docopt import docopt
print(docopt(__doc__))将给出以下输出
$ python my_program.py --loc=pcg --loc=acc
{'--help': False,
'--loc': ['pcg', 'acc']}https://stackoverflow.com/questions/58314139
复制相似问题