我正在使用 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”。