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」が表示されます。