Pythonのargparseモジュールは、コマンドライン引数のパースを容易にする強力なツールです。しかし、辞書のような複雑なデータ構造を扱うには、いくつかの工夫が必要です。この記事では、argparseを使用して辞書をパースする方法を紹介します。
辞書をパースする
argparseで辞書をパースする一つの方法は、カスタムアクションを使用することです。以下にその例を示します。
import argparse
class StoreDictKeyPair(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
my_dict = {}
for kv in values.split(","):
k,v = kv.split("=")
my_dict[k] = v
setattr(namespace, self.dest, my_dict)
parser = argparse.ArgumentParser()
parser.add_argument("--key_pairs", dest="my_dict", action=StoreDictKeyPair, metavar="KEY1=VAL1,KEY2=VAL2...")
args = parser.parse_args()
print(args.my_dict)
このコードでは、StoreDictKeyPair
というカスタムアクションを定義しています。このアクションは、コマンドライン引数をカンマで分割し、それぞれのキーと値を辞書に格納します。
まとめ
Pythonのargparseモジュールは、コマンドライン引数のパースを容易にします。しかし、辞書のような複雑なデータ構造を扱うには、カスタムアクションのような工夫が必要です。この記事では、argparseを使用して辞書をパースする方法を紹介しました。これにより、より複雑なコマンドライン引数を扱うことが可能になります。