Pythonでiniファイルを読み込む方法

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セクションで設定した値によって補完されたためです。

参考

詳細は以下のサイトを参照してください。

https://docs.python.org/ja/3/library/configparser.html

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です