三日月館【別館】開発・制作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

よくありそうな使用方法を下記に示す。

記述例:
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引数にアクセス


このページのタグ一覧
Python プログラミング

記事メニュー
ウィキ募集バナー