(1) Pythonでargparseを用いて引数を受け取って実行する方法
(1-1) argparseとは?
(1-2) 基本的な使い方
(1-3) サンプルプログラム
(2) 参考:argparseの引数の種類について
(2-1) positional arguments
(2-2) optional arguments
(1) Pythonでargparseを用いて引数を受け取って実行する方法
(1-1) argparseとは?
argparseはPythonで「位置指定引数」(positional arguments)を扱うためのパッケージです。位置指定引数とは引数の順番が意味を持つ引数です(順番を正しく保つ必要がある)。Python2.7でoptparseの後継機能として導入されています。
(1-2) argparseの最も基本的な使い方
まず最初のステップとして「parserオブジェクト」を作ります。
(STEP1)
- import argparse
- parser = argparse.ArgumentParser(description='Description of the argument')
次に「add_argument()」を使い、何の引数を待ち受けるかを教えます。それによりparserはプログラムのランタイム(実行時)にコマンドライン引数を処理する事ができます(ユーザが実行時に引数を与える)。
(STEP2)
- parser.add_argument('indir', type=str, help='Input dir for videos')
- parser.add_argument('outdir', type=str, help='Output dir for image')
parse_args()メソッドを用いて引数を構文解析(?)して格納します。
(STEP3)
- args = parser.parse_args()
(1-3) サンプルプログラム
argparseを使用して引数を受け取るサンプルプログラムをご紹介します。
(サンプルプログラム)
- import argparse
- def main():
- #(1)parsarオブジェクトの作成
- parser = argparse.ArgumentParser(description='Tiff to JPEG')
- #(2)引数を作成
- parser.add_argument('input', type=str, help='Input dir for Tiff')
- parser.add_argument('output', type=str, help='Output dir for JPEG')
- #(3)構文解析した引数を「args」変数にセット
- args = parser.parse_args()
- print(args.input)
- print(args.output)
- if __name__ == '__main__':
- main()
上記サンプルプログラムをコマンドラインから、「スペース区切り」で引数を2つ与えて実行すると、その引数を受け取ってコンソール表示しています。
引数に「ABCD」と「EFGH」を与えると、その引数を受け取って表示しています。
1つ目の引数が「indir」に格納され、2つ目の引数が「outdir」に格納されています。

(2) 参考:argparseの引数の種類について
argparserにおける引数は2つの種類があり、基本は全て「①positional arguments」であり、「–help」のみが「②optional arguments」になります。
(2-1) positional arguments
引数には順序があり、最初に記述した引数が1つ目の変数(例では「input」)にセットされ、次に記述した引数が2つ目の変数にセットされます(例では「output」)。
(2-2) optional arguments
(図221)引数を定義したプログラムの末尾に「–help」を付けて実行すると引数の情報が表示されます。
- parser.add_argument('-r', '--rainbow')