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を使用して辞書をパースする方法を紹介しました。これにより、より複雑なコマンドライン引数を扱うことが可能になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です