のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

PythonでコマンドラインをParseしよう(OptParse)

Sponsored Links

皆さんこんにちは
お元気ですか?眠いんですよおおおお

さて、プログラムを書いた時にコマンドラインを解析したいと思ったことはありませんか?
私は有ります。通常のコマンドラインからの入力を取り込むには、sys.argvを利用すればできます。

こんな感じ

python test.py test

testはimport sysとして、sys.argv[1]を利用して取得することができます。

しかし、これ…順番を間違えたりすると非常に悲惨な結果を生み出す可能性があります。そこでですね、OptParseと呼ばれるライブラリを使います。

ソースコード

#coding:utf-8
from optparse import OptionParser

parser = OptionParser()

parser.add_option(
    "-c","--choise",
    choices=["a","b","c"],
    help="type of input method",
    dest="choise")

parser.add_option(
    "-i","--input",
    type="string",
    dest="input"
    )

parser.add_option(
    "-d","--double",
    default="0.3",
    type="float",
    dest="floating"
    )
parser.add_option(
    "-f","--flag",
    action = 'store_true',
    default=False,
    dest="flag"
    )

(options, args) = parser.parse_args()

print options,args

出力

python optionparse.py -i aaa
{'input': 'aaa', 'floating': 0.3, 'flag': False, 'choise': None} []

まず、はじめにOptionParser()にて解析するオブジェクトを生成します。
次に必要なオプションを追加していきます。

choise:その中から選ぶリストを追加する。
dest:変数を入れる辞書のキー
help:文章
default:初期から入っている値
type:int,floatなどの型
action:'store_true'だと引数が宣言されたらtrueになる。

最後のoptionとargsですが、optionは解析結果、argsは処理できなかった引数が渡ります。

因みに--helpを実効すると勝手にヘルプを表示してくれます。

python optionparse.py --help
Usage: optionparse.py [options]

Options:
  -h, --help            show this help message and exit
  -c CHOISE, --choise=CHOISE
                        type of input method
  -i INPUT, --input=INPUT
  -d FLOATING, --double=FLOATING
  -f, --flag