【Python】configparserの使い方と設定ファイル

Pythonの応用
スポンサーリンク

プログラムにはいろんなオプションを設定することがあります。

その都度設定するようなものは、適時引数として値を渡せばいいのですが、長期に渡って使い続ける設定は別に設定して保存しておく必要があります。

サーバーの設定やMySQLの設定などを考えたらわかりますよね。

ここではPythonで.iniファイルを処理することができる標準モジュールのconfigparserを使って設定ファイルの操作をしてみます。

スポンサーリンク

configparserで.iniファイルの書き込み

.iniファイルはWindowsでよくみかけるファイルです。

書式の設定は

[セクション名]
キー = 値

の形で定義されます。

configparserを使って、一般的なローカルサーバーの設定ファイルを書き込んでみましょう。次のようなコードで設定ファイルが作成されます。

import configparser

cfg = configparser.ConfigParser()
cfg['DEFAULT'] = {
    'debug': True
}
cfg['web_server'] = {
    'host': '127.0.0.1',
    'port': 80
}
cfg['db_server'] = {
    'host': '127.0.0.1',
    'port': 3306
}
with open('config.ini', 'w') as config_file:
    cfg.write(config_file)

configparserをインポートします。Configparser()をオブジェクト化してcfgとします。

セクション名’DEFAULT’、’web_server’、’db_server’を[]にそれぞれ入れて、値を辞書型で設定しています。

これをwith文で’config.ini’ファイルに書き込みます。

実行してみます。(ファイル名cfg.pyでAtomで実行しています)

ここでは同じ作業ディレクトリの位置に’config.ini’ファイルが作成されているはずです。このファイルを開くと上記右側のようにiniファイルの書式で書き込まれているのがわかります。

スポンサーリンク

configparserで.iniファイルの読み込み

次はこの’config.ini’ファイルをconfigparserを使って読み込んでみましょう。

次のようなコードで設定ファイルを読み込むことができます。

import configparser

cfg = configparser.ConfigParser()
cfg.read('config.ini')

print(cfg['web_server'])
print(cfg['web_server']['host'])
print(cfg['web_server']['port'])

print(cfg['db_server'])
print(cfg['db_server']['host'])
print(cfg['db_server']['port'])

print(cfg['DEFAULT']['debug'])

書き込みと同様にConfigparser()をオブジェクト化しcfgとします。

そして’config.ini’ファイルをread()で読み込み、それぞれセクション名を指定してファイルの中身を出力しています。

実行するとこうなります。

設定ファイルの内容が読み込まれて、ターミナルに出力されているのがわかります。

このようにして、サーバーやアプリケーションの設定ファイルを読み書きすることができます。

スポンサーリンク

まとめ

プログラムにはいろんなオプションを設定することがあります。サーバーやアプリケーションなどで長期に渡って使い続ける設定は別に設定して保存しておく必要があります。

Pythonでは標準モジュールのconfigparserを使って設定ファイルの形式である.iniファイルを処理することができます。

Pythonの応用
スポンサーリンク
CodeGraffitiをフォローする

タイトルとURLをコピーしました