PythonのConfigParserモジュールを使ってみた。


これまで私がPythonで作ったツールは、設定ファイルなどをXMLとして保存していました。
というのも、それ以外にPythonで簡単に設定を保存する方法を知らなかったからでした。
で、Pythonリファレンスのグローバルモジュールインデックスを眺めていたら。。。

ConfigParser

というモジュールが目にとまりました。
もしかして!?と思って内容を読んでみると、思ったとおり使えそうなモジュールでした。(笑


で、以下のような簡単なスクリプトを書いて、どんなものか実験してみました。

# -*- coding: utf-8 -*-
#
# main.py
#

from ConfigParser import SafeConfigParser

def get_cfg_option(parser, section, opt):
    '''
  セクション、オプションを指定してパーサから値を取得する。
  値の取得に失敗した場合には、エラーを文字列として返す。

    parser:
        パーサオブジェクト
    section:
        セクション(文字列)
    opt:
        オプション(文字列)
    '''
    if not parser or not section or not opt:
        return 'arg error'

    try:
        return parser.get(section, opt)
    except Exception, err:
        return err


# パーサを生成して、設定ファイルを読み込ませる
parser = SafeConfigParser()
parser.readfp(open('test_conf.cfg'))

# パーサから情報を取り出して表示
print 'section1 opt1 --> %s' % get_cfg_option(parser, 'section1', 'opt1')
print 'section1 opt2 --> %s' % get_cfg_option(parser, 'section1', 'opt2')
print 'section1 opt3 --> %s' % get_cfg_option(parser, 'section1', 'opt3')


また、以下のような設定ファイルを作成しました。

# -*- coding: utf-8 -*-
#
# test_conf.cfg
#

[section1]
opt1=100
opt2=200


で、

python main.py

として実行してみると、以下のような結果が表示されました。

section1 opt1 --> 100
section1 opt2 --> 200
section1 opt3 --> No option 'opt3' in section: 'section1'

ほほう、なかなかいい感じですね。(笑
これは使えそうです。
設定ファイルの記述方法についてはもう少し調べてみようと思います。