Kuzunoha-NEのブログ

プログラミングなどの勉強をしてます

【Python】configparserを使って.iniファイルから設定を呼び出そう

公式ドキュメントはこちら

docs.python.org

環境

python 3.6.6

iniファイルを書こう

config.ini

[load_type]
type = csv

[setting]
csv_file_path = test.csv

pythonの準備

import configparser

標準モジュールのconfigparserをimportする

config_file = configparser.ConfigParser()

インスタンスを作成する

config_file.read('./config.ini')

iniファイルはこのようにパスを指定してあげる。

iniファイルを読み込む

print(config_file.get('load_type', 'type'))

とすると

'csv'

が返ってきます。

これはconfig.ini

[load_type]
type = csv

を読み込んでいるからです。

なお、config_file['load_type']['type']として取得するケースも見受けられるけど、python3.7以上からみたいです。

iniファイルに環境変数を入れる

[load_type]
type = mysql
[setting]
host = %(MYSQL_IPADDR)s

環境変数を使うなら%(環境変数名)sとする必要がある。

%(環境変数名)s
"sまで必要"

python側ではconfigparserのインスタンス作成時にos.environを引数に入れる。

import configparser
import os
config_file = configparser.ConfigParser(os.environ)

そうして、以下のように呼ぶ

config_file.read('./config.ini')
print(config_file.get('setting', 'host'))

実行してみると

root@:/var/sandbox# export MYSQL_IPADDR=127.0.0.1
root@:/var/sandbox# echo $MYSQL_IPADDR
127.0.0.1
root@:/var/sandbox# python conf_test.py
127.0.0.1