MB blog

ちょっぴりテクニカルな話題のメモです。

Pythonで設定ファイルから値の読み込み (ConfigParser)


スポンサードリンク

目下Python手習い中。
ある日、複数存在する設定ファイル(運用中にファイル数も値の数も変わる)から、全部の値を読み込むスクリプトが欲しいと思いました。

  • シェルスクリプト => できなくはなさそうだけどめっちゃめんどくさそう
  • Perl => Config::Simple がぴったりけど、環境的に追加モジュールは使いたくない
  • Python => デフォルトで使えるConfigParserってのがよさげ

ということで、シンプルにできそうなPythonを採用。

こんな感じで、セクションごとに設定値を用意(特に意味はない)。

  • setting.prop
[person]
name=Hanako Yamada
age=20
school=KEIO
host=192.168.10.12

[school]
name=KEIO
location=Mita

キーとバリューの区切り文字は、":"でも読み込んでくれる。


さて、セクションごと, キーごとに、値を取得していきます。

  • readConfig.py
import ConfigParser

config = ConfigParser.SafeConfigParser()
config.read('setting.prop')

for section in config.sections():
  print "<", section, ">"
  for option in config.options(section):
    print config.get(section, option)
  • 出力結果

< person >
host 192.168.10.12
school KEIO
age 20
name Hanako Yamada< school >
name KEIO
location Mita

わーい。標準でいろんなモジュールが使えるのが素敵です。