🦔
【configparser】別セクションの値を使う
はじめに
ini
ファイルで設定値を作成してみた。
そこでappDir
で定義した値を他のところでも使いたいと思って、↓のような感じで作ったらエラーになった。
iniファイル
[base]
appDir=D:\Develop
[api]
downloadDir=%(appDir)s\download
iniファイル読み込み
from configparser import ConfigParser
config = ConfigParser()
config.read("config/app.ini")
print(config["api"]["downloadDir"])
エラー内容
configparser.InterpolationMissingOptionError: Bad value substitution
解決方法
別セクションで定義した値を使いたい場合は、ExtendedInterpolation
を使う
変更後iniファイル
[base]
appDir=D:\Develop
[api]
downloadDir=${base:appDir}\download
ExtendedInterpolationを使う
from configparser import ConfigParser, ExtendedInterpolation
config = ConfigParser(interpolation=ExtendedInterpolation())
config.read("config/app.ini")
print(config["api"]["downloadDir"])
結果
D:\Develop\download
Discussion