argparse vs. optparse

python 2.7から、optparseが非推奨になり、代わりにかわりにサードパーティとしてPyPIで公開されていたargparseが標準に取り込ました。

そこで、http://argparse.googlecode.com/vn/trunk/doc/argparse-vs-optparse.htmlargparseとoptparseの違い(の最初だけ)の翻訳のようなものを書いてみました。

  • optparseはオプション引数しか扱えないが、argparseはオプション引数だけではなく、位置引数も同時に扱える。

オプション引数というのは

$ gcc spam.c -o egg.exe

の、"-o egg.exe"の部分の事。

  • argparseはどのコマンドラインのフォーマットを用いるか、独断的に決めるのではなく、オプションとしている。(例えば、"-file" と "/file" は両方サポートされている)。optparseはこれ等の機能をサポートしていない。実用性より純粋性を優先している。

  • argparseはより有意義な多いヘルプメッセージ(usage message)を表示する。位置引数とオプション引数の両方に対し、使い方とヘルプの情報が表示される。optparseでは使い方を自分で書かなければならない上、位置引数のヘルプを表示する事はできない。
  • argparseは可変個の引数をとるようなアクションを設定する事ができる。optparseではアクションがとる引数の数は予め指定しなければならない。
  • argparseはsub-commandを処理するparserをサポートしている。optparseでは手動で処理しなくてはならない。
  • argparseではadd_argument()のtype引数やaction引数として単純なcallableを渡す事ができる。 optparseでは引数のチェックのためには、STORE_ACTIONSやCHECK_METHODSのような技巧的なclass属性を指定しなければならない。