我目前脚本在Python中,但我想尝试Ruby的几个原因。我在上周看过很多示例代码并阅读了大量文档。我所关心的一个问题是Ruby中没有适当的命令行参数解析库。 Ruby专家,不要生我的气 - 也许我不知道。这就是我来这里的原因。红宝石optparse限制
在Python中,我习惯于使用,这在我看来是完美的(也许是为了我的需要)。不幸的是,OptionParser
不允许灵活性和的功能。
我专门找在下面的约束现在:
我如何相互排斥的选项列表?对于例如一个名为
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
或其他库处理这些制约因素?
哇。这是疯了。史诗。期。 这么长时间以来我一直在做什么。太棒了。非常感谢。 – p0lAris 2013-03-19 01:11:57