使用scala中的scopt解析带有多个值的选项

时间:2014-09-27 14:34:40

标签: scala scopt

我使用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 "))

我不认为minOccursmaxOccurs完全解决了我的问题,也没有解决其帮助中的关键:值示例。

2 个答案:

答案 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