Pythonのargparseモジュールは、コマンドライン引数のパースを容易にする強力なツールです。この記事では、argparseを使ってコマンドライン引数を辞書として扱う方法を紹介します。
argparseの基本
argparseモジュールは、ユーザーフレンドリーなコマンドラインインターフェースを作成するためのツールです。プログラムは必要な引数を定義し、argparseはそれらをsys.argvからパースする方法を決定します。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('filename') # positional argument
parser.add_argument('-c', '--count') # option that takes a value
parser.add_argument('-v', '--verbose', action='store_true') # on/off flag
args = parser.parse_args()
print(args.filename, args.count, args.verbose)
コマンドライン引数を辞書として扱う
argparseのArgumentParserを使った場合、パースした後はNamespace型のデータとして吐き出されます。しかし、これを辞書型に変換することで、より柔軟にデータを扱うことができます。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("test", type=str, help='test')
args = parser.parse_args() # ⇦これがNamespace型
args_dict = vars(args) # Namespace型を辞書型に変換
以上のように、argparseとvars()関数を組み合わせることで、コマンドライン引数を辞書として扱うことができます。
このテクニックを使えば、コマンドライン引数をより直感的に、そしてPythonらしく扱うことができます。ぜひお試しください。