pythonの標準ライブラリの configparser についての内容です。
configparserはあるオプションに依存するオプションを書くことができます。また依存元を後で埋めることもできます。
この一点だけで、設定ファイルをjsonで書いてjson.load()
したり、設定ファイルをyamlで書いてyaml.load()
するより便利なことがあるかもしれません。
具体的には以下のようなコードが動くということです。
以下のような設定ファイル(config.ini)があり、
[DEFAULT]
here = /foo/bar/boo
app = %(here)s/app%(suffix)s
DEFAULTセクションにhere,appのオプションが設定されています。
ここでappはhere,suffixに依存しています。
また、suffix optionは設定ファイルには記述されていません。
from configparser import ConfigParser
parser = ConfigParser(default_section="DEFAULT")
with open("config.ini") as inp
parser.readfp(inp)
parser["DEFAULT"]["suffix"] = ".py"
here, suffixに依存しているappオプションの値が取れました。
print(parser["DEFAULT"]["app"]) # /foo/bar/boo/app.py