使用例
まずはじめに使用例をお見せします。
コマンドライン
$ 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 ドキュメント