pythonのConfigParserによる設定ファイルの入力

ConfigParserによる設定ファイル(例えばini)を入力し、各種key/valueの設定値を取得する。
confディレクトリの下にあるiniファイルを全て読み、そのsection、itemを表示する。

test_getconf.py
#!/usr/local/bin/python

import sys, os, array
import glob
import ConfigParser

def main (argv, environ):
    #print "*** argv=[%s]" % (argv[1])

    conf_dir   = "./conf"

    if (not os.path.exists(conf_dir)) :
        print "*** FILE_CONF(%s) not found.\n" % (FILE_CONF)
        return

    conf_files = glob.glob (conf_dir + '/*.ini')
    conf = ConfigParser.SafeConfigParser ()
    for conf_file in conf_files :
        print "    conf_file=[%s]" % (conf_file)
        conf.read(conf_file)

    for sections in conf.sections() :
        print "    section=[%s]" % (sections)

        #print "    %s" % (conf.items(sections))
        items = conf.items(sections)
        for item in items :
            print "        item:key=[%s] val=[%s]" % (item[0],item[1])

    print ""
    print "    setting3.val2=[%s]" % (conf.get('setting3', 'key2'))

if __name__ == "__main__":
    print "*** start %s" % sys.argv[0]
    main (sys.argv, os.environ)
    print "*** end   %s" % sys.argv[0]
設定ファイル test1.ini
[setting1]
key1 = setting1_val1
key2 = setting1_val2

[setting2]
key1 = setting2_val1
ley2 = setting2_val2
test2.ini
[setting3]
key1 = setting3_val1
key2 = setting3_val2

[setting4]
key1 = setting4_val1
key2 = setting4_val2
実行結果
$ ./test_getconf.py
*** start ./test_getconf.py
    conf_file=[./conf/test2.ini]
    conf_file=[./conf/test1.ini]
    section=[setting4]
        item:key=[key1] val=[setting4_val1]
        item:key=[key2] val=[setting4_val2]
    section=[setting1]
        item:key=[key1] val=[setting1_val1]
        item:key=[key2] val=[setting1_val2]
    section=[setting2]
        item:key=[ley2] val=[setting2_val2]
        item:key=[key1] val=[setting2_val1]
    section=[setting3]
        item:key=[key1] val=[setting3_val1]
        item:key=[key2] val=[setting3_val2]

    setting3.val2=[setting3_val2]
*** end   ./test_getconf.py

pythonのパラメータ(プログラム引数)取得 - OptionParser

pythonのパラメータ(プログラム引数)取得にOptionParserを利用。
Verは2.4.3で確認。

パラメータの形式はショート/ロング同時に指定できて便利。

ソースコード:test01_child.py
#!/usr/local/bin/python

import sys, os, array
import time
import ConfigParser
from optparse import OptionParser

prm_proc = ''
prm_date = 0

def main (argv, environ):

    print "        start test01_child.py main: %s %s" % (prm_proc, prm_date)
    time.sleep (5)

if __name__ == "__main__":

    print "    *** test01_child: start."

    parser = OptionParser()
    parser.add_option("-p", "--proc", type="string", dest="prm_proc")
    parser.add_option("-d", "--date", type="int",    dest="prm_date")

    (pgm_opts, args) = parser.parse_args()

    prm_proc = pgm_opts.prm_proc
    prm_date = pgm_opts.prm_date

    print "        test01_child: prm_proc=[%s] prm_date=[%s]" % (prm_proc, prm_date)

    #common_conf = test_mod01.getGenConfig('')
    #print "    test01_child: common_conf=[%s]" % common_conf
    #print "                      ini_dir=[%s]" % common_conf['ini_dir']

    main (sys.argv, os.environ)

    print "    *** test01_child: finished."


実行例:
$ python -V
Python 2.4.3

$ ./test01_child.py -p proc -d 20101018
    *** test01_child: start.
        test01_child: prm_proc=[proc] prm_date=[20101018]
        start test01_child.py main: proc 20101018
    *** test01_child: finished.

$ ./test01_child.py --proc test01_child --date 20101018
    *** test01_child: start.
        test01_child: prm_proc=[test01_child] prm_date=[20101018]
        start test01_child.py main: test01_child 20101018
    *** test01_child: finished.

カテゴリ

Amazon

アクセスランキング

[ジャンルランキング]
コンピュータ
249位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
38位
アクセスランキングを見る>>

RSSリンクの表示

ブロとも申請フォーム

Copyright © nopgm