optparse はとても柔軟で強力でありながら、ほとんどの場合には簡単に利用 できます。この節では、optparse ベースのプログラムで広く使われて いるコードパターンについて述べます。
まず、OptionParser クラスを import しておかねばなりません。 次に、プログラムの冒頭で OptionParser インスタンスを生成しておきます:
from optparse import OptionParser [...] parser = OptionParser()
これでオプションを定義できるようになりました。基本的な構文は以下の通りです:
parser.add_option(opt_str, ..., attr=value, ...)
各オプションには、"-f"
や"-file"
のような一つまたは複数の
オプション文字列と、パーザがコマンドライン上のオプションを見つけた際に、
何を準備し、何を行うべきかをoptparse に教えるためのオプション属性
(option attribute)がいくつか入ります。
通常、各オプションには短いオプション文字列と長いオプション文字列があります。 例えば:
parser.add_option("-f", "--file", ...)
オプション文字列は、(ゼロ文字の場合も含め)いくらでも短く、またいくらでも長く できます。ただしオプション文字列は少なくとも一つなければなりません。
add_option() に渡されたオプション文字列は、実際にはこの 関数で定義したオプションに対するラベルになります。簡単のため、以後では コマンドライン上でオプションを見つける という表現をしばしば使いますが、 これは実際にはoptparse がコマンドライン上のオプション文字列 を見つけ、対応づけされているオプションを捜し出す、という処理に相当します。
オプションを全て定義したら、optparse にコマンドラインを解析するように 指示します:
(options, args) = parser.parse_args()
(お望みなら、parse_args() に自作の引数リストを渡してもかまいません。
とはいえ、実際にはそうした必要はほとんどないでしょう: optionparser
はデフォルトでsys.argv[1:]
を使うからです。)
parse_args() は二つの値を返します:
options
-- 例えば、
"-file"
が単一の文字列引数をとる場合、options.file
は
ユーザが指定したファイル名になります。オプションを指定しなかった場合には
None
になります。
args
。
このチュートリアルの節では、最も重要な四つのオプション属性: action, type, dest (destination), および help についてしか触れません。このうち最も重要なのはaction です。