pythonの引数解析用のモジュールとして「argparse」があります。
よく使うわりに、わからないオプションがあったり毎回書き方を調べたりしていたので、一度ちゃんと調べてまとめることにしました。
基本的な使い方
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"を使うといい