如何获取Python';s OptPasser以-vs形式查看标志
我使用optpass处理参数和选项,然后生成一个命令来执行另一个程序 我需要optpass来识别未定义的标志/选项,而不会抛出错误,这样我就可以将它们传递到我正在调用的程序中。我通过将OptionParser子类化来实现:如何获取Python';s OptPasser以-vs形式查看标志,python,optparse,Python,Optparse,我使用optpass处理参数和选项,然后生成一个命令来执行另一个程序 我需要optpass来识别未定义的标志/选项,而不会抛出错误,这样我就可以将它们传递到我正在调用的程序中。我通过将OptionParser子类化来实现: class IFTOptionParser(optparse.OptionParser): def _process_args(self, largs, rargs, values): while rargs: try:
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”。传递“-vs”怎么样。单减号参数应该是单字符后跟一个值。如果您可以使用
argparse
,这正是设计的目的。是的,我感觉答案是使用argparse。但我不想更改代码。“2.7版后已弃用:optparse
模块已弃用,不会进一步开发;将继续使用argparse
模块进行开发”