什么是解析的最佳方法,不能使用optparse

时间:2014-08-13 10:28:18

标签: python parsing command-line-arguments optparse command-line-parsing

我有一个很长的脚本,有几个选项供用户选择,我试图使用optparse,但我读过optparse只接受一个选项中的几个输入。 我的意思是,如果我需要计算一定数量的平方,我想做几个而不仅仅是一个。我的意思是在命令行中编写,python math.py -i 4 5 6 54并且选项-i将在这些数字上执行并返回16 25 36 2916,除此之外添加更多选项,如python math.py -i 4 5 6 54 -d 4 5 6 54并且选项-d也可以在这些数字上执行。你能帮我解一下解析的最佳选择吗?

提前致谢

2 个答案:

答案 0 :(得分:2)

您只需阅读sys.argv(命令行参数数组)并以您喜欢的方式解释它们。

答案 1 :(得分:0)

请查看文档中的以下example

它在optparse中使用callback选项类型。如果你能够,你应该使用argparse代替但需要2.7 +。

来自文档的示例代码:

 def vararg_callback(option, opt_str, value, parser):
     assert value is None
     value = []

     def floatable(str):
         try:
             float(str)
             return True
         except ValueError:
             return False

     for arg in parser.rargs:
         # stop on --foo like options
         if arg[:2] == "--" and len(arg) > 2:
             break
         # stop on -a, but not on -3 or -3.0
         if arg[:1] == "-" and len(arg) > 1 and not floatable(arg):
             break
         value.append(arg)

     del parser.rargs[:len(value)]
     setattr(parser.values, option.dest, value)

[...]
parser.add_option("-c", "--callback", dest="vararg_attr",
                  action="callback", callback=vararg_callback)

它有点毛茸茸,但它或多或少会有你想要的东西,同时仍然允许你使用optparse用于其他东西。