Pythonのargparseモジュールを使用して、コマンドラインから任意のキーと値のペアを受け取る方法について説明します。この方法は、設定ファイルやJSONなどのデータ構造を上書きするためのオプションを提供する際に特に有用です。
まず、argparseモジュールをインポートし、ArgumentParserオブジェクトを作成します。
import argparse
parser = argparse.ArgumentParser(description="...")
次に、--set
という名前の引数を定義します。この引数は、キーと値のペアを表す文字列を受け取ります。
parser.add_argument("--set", metavar="KEY=VALUE", nargs='+', help="Set a number of key-value pairs.")
この引数は、次のようにコマンドラインから使用できます。
mycommand par1 --set foo=hello bar="hello world" baz=5
このコマンドを実行すると、args.set
には["foo=hello", "bar=hello world", "baz=5"]
というリストが格納されます。
最後に、このリストを辞書に変換するための関数を定義します。
def parse_var(s):
items = s.split('=')
key = items[0].strip()
if len(items) > 1:
value = '='.join(items[1:])
return (key, value)
def parse_vars(items):
d = {}
if items:
for item in items:
key, value = parse_var(item)
d[key] = value
return d
これらの関数を使用して、args.set
のリストを辞書に変換します。
values = parse_vars(args.set)
以上で、argparseを使用してコマンドラインから任意のキーと値のペアを受け取る方法の説明を終わります。この方法を使用すれば、コマンドラインから動的に設定を変更することが可能になります。