首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docopt -可选参数的多个值

Docopt -可选参数的多个值
EN

Stack Overflow用户
提问于 2019-10-10 09:15:33
回答 1查看 325关注 0票数 0

我想用docopt解析一个具有多个值的可选参数。下面是示例用法。

代码语言:javascript
复制
my_program.py --loc pcg acc
# or anything that achieve similar result

在解析之后,我希望得到如下所示的python列表

代码语言:javascript
复制
arguments["--loc"] = ["pcg", "acc"]

我浏览了一下,通过传递nargs参数,发现这在argparse中是否可行。

我在docopt中找不到任何类似的方法,这在docopt中可行吗?如果不是,还有什么选择呢?

我能想到的另一种选择是让用户指定逗号分隔的值,并在解析过程中手动拆分它,如下所示。

代码语言:javascript
复制
my_program.py [--loc=<comma_separated_str>]

python代码中

代码语言:javascript
复制
locs = arguments["--loc"].split(",") if arguments["--loc"] else []

然而,这看起来很丑陋,所以我正在寻找一种合适的方法来使用docopt

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-11 03:16:48

一种方法是使用省略号(...)运算符,因此一个选项可以用方括号重复零次或多次,或用括号重复一次或多次。例如

代码语言:javascript
复制
"""Usage: my_program.py --help
       my_program.py [--loc=<loc>]...
"""

from docopt import docopt
print(docopt(__doc__))

将给出以下输出

代码语言:javascript
复制
$ python my_program.py --loc=pcg --loc=acc
{'--help': False,
 '--loc': ['pcg', 'acc']}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58314139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档