ページ

2012年11月30日金曜日

argparse

pythonをコマンドラインで実行する時にオプションの設定がしたい場合はargparseを使えば楽。
ちなみにargparseはpython2.6からデフォルトで入っている。

サンプルのプログラムはこんなかんじ

import argparse

 

if __name__ == '__main__':

    parser = argparse.ArgumentParser(description='do something')

    parser.add_argument('files', nargs='*')

    parser.add_argument('--host', nargs=1,required=True)

    parser.add_argument('--debug', action='store_true')

    args = parser.parse_args()



    if args.debug:

        print args.host[0]



        for file in args.files:

             print file

# python xxx.py a b c --host 192.168.1.1 --debug
<実行結果>
192.168.1.1
a
b
c

nargsでそのオプションにたいする引数の数を指定できる。
なので('--host',nargs=4,required=True)としてサーバを4台分指定するとかができる。
これをするとプログラムのでは中に定数として接続先サーバの情報をもたず引数で必要な情報を指定して処理を分けるといったことができるようになる。
結構便利!!