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台分指定するとかができる。
これをするとプログラムのでは中に定数として接続先サーバの情報をもたず引数で必要な情報を指定して処理を分けるといったことができるようになる。
結構便利!!
0 件のコメント:
コメントを投稿