我有一个很长的脚本,有几个选项供用户选择,我试图使用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也可以在这些数字上执行。你能帮我解一下解析的最佳选择吗?
提前致谢
答案 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用于其他东西。