6.21 optparse -- より強力なコマンドラインオプション解析器

バージョン 2.3 で 新たに追加 された仕様です。

optparse モジュールは、getopt よりも簡便で、柔軟性に富み、 かつ強力なコマンドライン解析ライブラリです。 optparse では、より明快なスタイルのコマンドライン解析手法、 すなわちOptionParser のインスタンスを作成してオプションを 追加してゆき、そのインスタンスでコマンドラインを解析するという手法を とっています。optparse を使うと、GNU/POSIX 構文でオプションを 指定できるだけでなく、使用法やヘルプメッセージの生成も行えます。

optparse を使った簡単なスクリプト例を以下に示します:

from optparse import OptionParser

[...]
parser = OptionParser()
parser.add_option("-f", "--file", dest="filename",
                  help="write report to FILE", metavar="FILE")
parser.add_option("-q", "--quiet",
                  action="store_false", dest="verbose", default=True,
                  help="don't print status messages to stdout")

(options, args) = parser.parse_args()

このようにわずかな行数のコードによって、スクリプトのユーザは コマンドライン上で例えば以下のような 「よくある使い方」 を実行できるように なります:

<yourscript> --file=outfile -q

コマンドライン解析の中で、optparse はユーザの指定した コマンドライン引数値に応じてparse_args() の返す options の属性値を設定してゆきます。 parse_args() がコマンドライン解析から処理を戻したとき、 options.filename"outfile" に、options.verboseFalse になっているはずです。optparse は 長い形式と短い形式の両方のオプション表記をサポートしており、 短い形式は結合して指定できます。また、様々な形でオプションに 引数値を関連付けられます。従って、以下のコマンドラインは全て上の例 と同じ意味になります:

<yourscript> -f outfile --quiet
<yourscript> --quiet --file outfile
<yourscript> -q -foutfile
<yourscript> -qfoutfile

さらに、ユーザが

<yourscript> -h
<yourscript> --help

のいずれかを実行すると、optparse はスクリプトの オプションについて簡単にまとめた内容を出力します:

usage: <yourscript> [options]

options:
  -h, --help            show this help message and exit
  -f FILE, --file=FILE  write report to FILE
  -q, --quiet           don't print status messages to stdout

yourscript の中身は実行時に決まります (通常は sys.argv[0] になります)。



ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。