我使用scopt来解析scala中的命令行参数。我希望它能够解析具有多个值的选项。例如,范围选项(如果指定)应该只取两个值。
--range 25 45
来自python背景,我基本上是在寻找一种方法来使用scopt而不是python' s argparse执行以下操作:
parser.add_argument("--range", default=None, nargs=2, type=float,
metavar=('start', 'end'),
help=(" Foo bar start and stop "))
我不认为minOccurs
和maxOccurs
完全解决了我的问题,也没有解决其帮助中的关键:值示例。
答案 0 :(得分:1)
查看source code,这是不可能的。使用的Read
类型类具有成员tuplesToRead
,但当您将其强制转换为2
而不是1
时,它似乎不起作用。我想,您必须使用--min 25 --max 45
或--range '25 45'
并使用自定义Read
实例将此字符串拆分为两部分来制作功能请求。正如@roterl所说,这不是一种标准的解析方式。
答案 1 :(得分:0)
如果只有你的值用空格而不是空格分隔,那应该没问题。
super_base(int)
...虽然您需要手动拆分它们。用以下内容解析它:
--range 25-45