configparserの基本的な使い方
素晴らしい記事があるのでこちらを参照ください。
問題点
- 設定ファイル(config.ini)にリストを記述してリストとして読み込みたいが、configparserは文字列として読み込んでしまう。
解決方法
- eval関数を利用して、式として評価してあげる。
サンプルコード
例えば特定のフォルダ内にある、複数の拡張子を扱いたい場合のことを考えます。
config.ini
- DEFAULTの部分は任意の変数名に書き換えれます。
[DEFAULT]
EXTENSION_TYPES = [
".zip",
".log",
".png"
]
example.py
- configparserを利用してconfigを読み出します.
- eval関数を利用して文字列をリストとして評価します.
config = configparser.ConfigParser()
config.read(config_path, encoding="utf8")
extension_types=eval(
config["DEFAULT"]["EXTENSION_TYPES"])
改善点
- confgparserに詳しくないとeval関数で何をやっているのか分かりづらい。
- そのため、eval()でやっていることを
convert_str_to_list
などの名前に変えてラッパーを実装してあげるとより丁寧かも。