Pythonでiniファイルを読み込む方法をご紹介します。
目次
条件
- Python 3.7.0
マップ型プロトコルアクセス
parser[‘section’][‘option’] によってiniファイルの値を取得することが出来ます。
例)config.iniが以下のような設定の場合
# config.ini [db_info] user = testUser password = testtest host = localhost database = testData
# test.py import configparser ini = configparser.ConfigParser() ini.read('./config.ini', 'UTF-8') print('マップ型プロトコルアクセス') print(ini['db_info']['user']) print(ini['db_info']['password']) print(ini['db_info']['host']) print(ini['db_info']['database'])
実行結果
c:\test>python test.py マップ型プロトコルアクセス testUser testtest localhost testData
getによるアクセス
getによるアクセスもできます。
しかし直感的ではないため、マップ型プロトコルアクセスが推奨されています。
# test.py import configparser ini = configparser.ConfigParser() ini.read('./config.ini', 'UTF-8') print('getによるアクセス') print(ini.get('db_info', 'user')) print(ini.get('db_info', 'password')) print(ini.get('db_info', 'host')) print(ini.get('db_info', 'database'))
実行結果
c:\test>python test.py getによるアクセス testUser testtest localhost testData
DEFAULTによる補完
DEFAULTセクションを記述することで、他のすべてのセクションで値を補完することが出来ます。
例)config.iniが以下のような設定の場合
# config.ini [DEFAULT] user = testUser password = testtest host = localhost database = testData version = 5.7 [db_info] user = testUser password = testtest host = localhost database = testData
# test.py import configparser ini = configparser.ConfigParser() ini.read('./config.ini', 'UTF-8') print('マップ型プロトコルアクセス') print(ini['db_info']['user']) print(ini['db_info']['password']) print(ini['db_info']['host']) print(ini['db_info']['database']) print(ini['db_info']['version'])
実行結果
c:\test>python test.py マップ型プロトコルアクセス testUser testtest localhost testData 5.7
db_infoにはversionという設定値が無いにも関わらず、「5.7」という値が出力されています。
これはDEFAULTセクションで設定した値によって補完されたためです。
参考
詳細は以下のサイトを参照してください。