我目前使用 Python 编写脚本,但出于几个原因我想尝试 Ruby。在上周,我查看了很多示例代码并阅读了很多文档。我担心的一个问题是 Ruby 中缺少适当的命令行参数解析库。Ruby 专家,不要生我的气——也许我不知道。这就是我在这里的原因。
在 Python 中,我习惯于使用argparse
它,我认为它简直是完美的(也许适合我的需要)。不幸的是,OptionParser
它不允许这样做的灵活性和功能argparse
。
我现在特别关注以下限制:
如何制作互斥选项列表?例如,一个名为
test
.usage: test [-h] [-a | -b | -c] [-d] [filename]
我可以编写一些代码,例如:
# implement a ---------------------------------------------- opts.on( "-a", "--alpha", "implement alpha") do #... end
等等。
a
但是,除非我对它们的排列进行编码并进行一些错误处理,否则我无法制作b
和c
互斥。例如test -ab #should through an error
在 Python 中,我可以很简单地做到这一点:
# create an command line argument parser object cmd_line_parser = argparse.ArgumentParser() # create a mutually exclusive group cmd_line_group = cmd_line_parser.add_mutually_exclusive_group()
其次,除非我专门为这种排列编写代码
-d
,否则我无法配对。-a
疯了吧。我必须自己写
[OPTION]
清单;除非并且直到我对所有可能的输入排列进行黑盒测试并将它们映射到黑盒列表,否则我无法知道我是对还是错。此外,强制参数再次需要使用特殊代码处理。
optparse
使用Ruby 或其他库是否可以轻松处理这些约束?