argparseの使い方まとめ

pythonの引数解析用のモジュールとして「argparse」があります。

よく使うわりに、わからないオプションがあったり毎回書き方を調べたりしていたので、一度ちゃんと調べてまとめることにしました。

argparseとは

Pythonの引数解析用の標準ライブラリ。
プログラム実行時にコマンドラインから引数を受け取る処理を簡単に書ける。

基本的な使い方

ArgumentParserオブジェクトをつくる

add_argument()で引数を設定

parse_args()で解析

コード例は以下のようになります。

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('name', type=str, help='名前') # helpは必須ではない
parser.add_argument('--age', type=int, help='年齢')

args = parser.parse_args()

よく使うオプション

type引数

add_argumentのtype引数により、型を指定できます。type引数を指定しない場合は、引数は文字列として読み込まれます。

parser.add_argument('arg1', type=int)
parser.add_argument('arg2', type=float)

type 引数の値としては、一般的なビルトインのデータ型や関数を指定できます。

※注意点
type引数にboolを指定することは避けた方がよいとされています。
bool関数は空文字列を False に、それ以外の全てを True に変換するので、引数として"false"を指定してもTrueに変換されてしまい紛らわしいため。

action引数

action引数により便利な動きを実現できます。中でも、以下はよく使われると思います。

"store_const": constキーワードで指定された値を格納。

parser.add_argument('--hoge', action='store_const', const=5)
# 引数 --hogeを指定すると、5が格納される。

"store_true": Trueを格納する。(フラグをセットするのに使う事が多い)

parser.add_argument('--piyo', action='store_true')
# 引数 --piyoを指定すると、Trueが格納される。

※Falseを格納したい場合は"score_false"を使うといい