このモジュールは、スクリプトで sys.argv 中のコマンドライン引数を解析 する時に役立ちます。Unix の getopt() 関数と同様の引数の書式を (`-' や `--' の形式の引数が特別な意味を持つことも 含めて)サポートしています。 GNU ソフトウエアによってサポートされているような長い(2文字以上の)オプション も、3番目のオプション(省略可能)の引数により使用することができます。 このモジュールは、1つの関数と1つの例外を提供しています。
戻り値は、2つの要素で構成されています。最初の要素は、 (option, value) の組(タプル)のリストです。2番目の 要素は、オプションリストを取り除いた後の、それ以降に記述された引数のリスト です。(最初の引数からそれ以降のスライスです。) 戻り値の option と value の組はそれぞれが、最初の要素としてハイフンで始まる オプション名(例えば、'-x')を、また2番目の要素としてオプションに 対応する引数を持っています。ただし、オプションが引数を必要としないものは、 2番目の要素は空の文字列になります。 リスト内のオプションは、見つかった順(指定された順)に並べられています。また、 同じオプションを2回以上指定することも許されます。さらに、長い(2文字以上の) オプションと短い(1文字の)オプションを、混在させて指定してもかまいません。
Unix スタイルのオプションのみを使った例です。
>>> import getopt, string >>> args = string.split('-a -b -cfoo -d bar a1 a2') >>> args ['-a', '-b', '-cfoo', '-d', 'bar', 'a1', 'a2'] >>> optlist, args = getopt.getopt(args, 'abc:d:') >>> optlist [('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')] >>> args ['a1', 'a2'] >>>
長い名前のオプションを使う場合も同様に簡単です。
>>> s = '--condition=foo --testing --output-file abc.def -x a1 a2' >>> args = string.split(s) >>> args ['--condition=foo', '--testing', '--output-file', 'abc.def', '-x', 'a1', 'a2'] >>> optlist, args = getopt.getopt(args, 'x', [ ... 'condition=', 'output-file=', 'testing']) >>> optlist [('--condition', 'foo'), ('--testing', ''), ('--output-file', 'abc.def'), ('-x', '')] >>> args ['a1', 'a2'] >>>
guido@python.org