argparseを使いPythonスクリプトにコマンドライン引数を渡す

使用例

まずはじめに使用例をお見せします。

コマンドライン

$ python argparse_test.py --input hoge

実行結果:

input: hoge

argparse_test.py

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--input', '-i', type=str)
args = parser.parse_args()
print('\n実行結果:\n')
print('input: ' + args.input)

解説

表題通りですが、argparseモジュールを使うと、コマンドライン上からPythonスクリプトを渡すことができます。

応用例:int, float, bool型を扱う

str型以外にも、int型やfloat型の引数を渡すことが出来ます。

bool型を扱う場合には、少し特殊な処理が必要です。

action=’store_true’と指定すると、実行時に–bool_flagとしたときargs.bool_flagがTrueとなります。

コマンドライン

$ python argparse_test2.py --input_str fuga --input_int 1 --input_float 1.0 --bool_flag

実行結果:

--input_str
     type  : <class 'str'>
    value  : fuga

--input_int
     type  : <class 'int'>
    value  : 1

--input_float
     type  : <class 'float'>
    value  : 1.0

--bool_flag
     type  : <class 'bool'>
    value  : True

argparse_test2.py

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--input_str', '-s', type=str)
parser.add_argument('--input_int', '-i', type=int)
parser.add_argument('--input_float', '-f', type=float)
parser.add_argument('--bool_flag', '-b', action='store_true')
args = parser.parse_args()

print('\n実行結果:\n')
print('--input_str')
print('     type  : {}'.format(type(args.input_str)))
print('    value  : {}'.format(args.input_str))
print() # for line feed

print('--input_int')
print('     type  : {}'.format(type(args.input_int)))
print('    value  : {}'.format(args.input_int))
print()

print('--input_float')
print('     type  : {}'.format(type(args.input_float)))
print('    value  : {}'.format(args.input_float))
print()

print('--bool_flag')
print('     type  : {}'.format(type(args.bool_flag)))
print('    value  : {}'.format(args.bool_flag))

引数が多すぎて把握できない場合には、--helpオプションを使うと、定義した引数の一覧を表示させることが出来ます。

コマンドライン

$ python argparse_test2.py --help
usage: argparse_test2.py [-h] [--input_str INPUT_STR] [--input_int INPUT_INT]
                         [--input_float INPUT_FLOAT] [--bool_flag]

optional arguments:
  -h, --help            show this help message and exit
  --input_str INPUT_STR, -s INPUT_STR
  --input_int INPUT_INT, -i INPUT_INT
  --input_float INPUT_FLOAT, -f INPUT_FLOAT
  --bool_flag, -b

参考文献

argparse — コマンドラインオプション、引数、サブコマンドのパーサー ―― Python 3.6.5 ドキュメント

シェアする

  • このエントリーをはてなブックマークに追加

フォローする