三日月館【別館】開発・制作Tips集
[Python] argparseモジュールでコマンドライン引数を解析する
最終更新:
fumiduki1985
-
view
argparseモジュールを使用すると、よくある書式のコマンドライン引数の解析とエラー処理、-h/--helpによる使用方法の表示などをいちいちコーディングする必要がなくなる。
オプションは多岐に渡るため、詳細は公式マニュアルの下記を参照。
リファレンス:https://docs.python.jp/2.7/library/argparse.html#module-argparse
チュートリアル:https://docs.python.jp/2.7/howto/argparse.html#id1
リファレンス:https://docs.python.jp/2.7/library/argparse.html#module-argparse
チュートリアル:https://docs.python.jp/2.7/howto/argparse.html#id1
よくありそうな使用方法を下記に示す。
記述例:
import argparse
# パーサーの作成
# description, epilog は -help/-h 使用時に表示されるテキスト。
# argument_default は引数のグローバルなデフォルト値。
parser = argparse.ArgumentParser(description=u'ヘルプの最初に表示されるテキストです。',
epilog=u'ヘルプの最後に表示されるテキストです。',
argument_default=None)
# 位置引数の設定
# int型を受け取る位置引数
parser.add_argument('posArgInt', type=int, help=u'整数引数')
# float型を受け取る位置引数
parser.add_argument('posArgFloat', type=float, help=u'浮動小数引数')
# int型の3つの値を受け取る位置引数(3つの値がリストとして格納される)
parser.add_argument('posArgVec3', type=int, nargs=3, help=u'整数3要素引数')
# キーワード引数(オプション引数)の設定
# int型を受け取るキーワード引数
parser.add_argument('-a', '--argA', dest='argA', type=int, default=0, help=u'整数引数')
# float型を受け取るキーワード引数
parser.add_argument('-b', '--argB', dest='argB', type=float, default=0.0, help=u'浮動小数引数')
# 複数の値から1つを選んで設定するキーワード引数(この例では、ABC、DEF、GHI のいずれかを受け付ける)
parser.add_argument('-e', '--argEnum', dest='argEnum', choices=['ABC', 'DEF', 'GHI'], default='ABC', help=u'選択引数')
# フラグとして使用するキーワード引数(指定すると argFlag が True になる)
parser.add_argument('-f', '--argFlag', dest='argFlag', action='store_true', default=False, help=u'フラグ引数')
# 指定必須のキーワード引数
parser.add_argument('-r', '--argReq', dest='argReq', required=True, help=u'必須引数')
# 引数の解析
args = parser.parse_args()
print args.posArgInt # posArgInt引数にアクセス
print args.argA # argA引数にアクセス
