LoginSignup
10
9

More than 5 years have passed since last update.

[python] pythonのconfigparserがもしかしたらyamlで設定を管理するより優れているかもしれないこと

Posted at

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
10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9