我使用optparse处理参数和选项,然后生成执行另一个程序的命令。
我需要optparse来识别未定义的标志/选项而不会抛出错误,所以我可以在我调用的程序上传递它们。我是通过继承OptionParser来实现的:
class IFTOptionParser(optparse.OptionParser):
def _process_args(self, largs, rargs, values):
while rargs:
try:
optparse.OptionParser._process_args(self,largs,rargs,values)
except (optparse.BadOptionError,optparse.AmbiguousOptionError), e:
largs.append(e.opt_str)
但是当我传入这样的标志时,这不起作用: $ foo -vs
它只是传递“-v”
如果我进入_process_args并打印出e.opt_str,我会得到“-v”。