こんにちは,ティロといいます.
python修行中で,研究室の先輩のコードを読んでいると
よくargparseが出てくるのでコードベースでまとめました.
また詳しい解説はこちらから
argparse — コマンドラインオプション、引数、サブコマンドのパーサー — Python 3.9.4 ドキュメント
argparseとは
argparseとはコマンドラインで引数を受け取ることができるpythonの標準ライブラリです.
pipでインストールする必要はありません.
コマンドラインの引数とは以下のように実行する際に指定できる引数です.
1 | $python argparse_test.py 引数 |
argparseの使い方
まずargparseをimportします.
1 2 3 4 5 | import argparse parser = argparse.ArgumentParser(<span class="pl-s1">description</span><span class="pl-c1">='test'</span>) parser.add_argument("test") args = parser.parse_args() |
argparse.ArgumentParser()を書き,add_argumentで引数を追加できます.
descriptionは書かなくても大丈夫です.
-hとすることで指定できる引数が分かります.
またdescriptionを書いていると-hした際に表示されます.
1 | $python argparse_test.py -h |
1 2 3 4 5 6 7 8 9 | usage: argparse_test.py [-h] test test positional arguments: test optional arguments: -h, --help show this help message and exit |
オプション引数
オプション引数は実行時に値を指定しなくも良いものになります.
オプション引数に値を指定しない場合はNoneになります.
オプション引数の定義は以下のようになります.
args.引数名で引数にアクセスできます.
parser.add_argument(‘–引数名’)
1 2 3 4 5 6 7 8 | import argparse parser = argparse.ArgumentParser(description='test') parser.add_argument('--test') args = parser.parse_args() print(args.test) #実行結果 None |
引数にdefault値を指定したい
以下のようにdefaultを設定できます.
1 2 3 4 5 6 7 8 | import argparse parser = argparse.ArgumentParser(description='test') parser.add_argument('--test',default=100)#defaultを指定 args = parser.parse_args() print(args.test) #実行結果 100 |
引数に型を指定したい
以下のように引数に型を指定できます.
1 2 3 4 5 6 | import argparse parser = argparse.ArgumentParser(description='test') parser.add_argument('--test',default=100,type=int)#型を指定 args = parser.parse_args() print(args.test) |
今回は型をintにしました.
testという引数に文字を与えるエラーになります.
1 | argparse_test.py: error: argument --test: invalid int value: 'a' |
引数の説明を書きたい
以下のように引数の説明を設定します.
1 2 3 4 5 6 | import argparse parser = argparse.ArgumentParser(description='test') parser.add_argument('--test',default=100,type=int,help='test is int value')#helpを設定 args = parser.parse_args() print(args.test) |
helpで引数の説明を記述できます.
引数を必須にしたい
引数を必須にしたい場合はrequired=Trueを追加します.
parser.add_argument(‘–引数’,required=True)
1 2 3 4 5 6 | import argparse parser = argparse.ArgumentParser(description='test') parser.add_argument('--test',required=True) args = parser.parse_args() print(args.test) |
引数を設定しないとエラーになります.
1 | argparse_test.py: error: the following arguments are required: --test |