pythonのConfigParserによる設定ファイルの入力
- Sat
- 18:13
- python
ConfigParserによる設定ファイル(例えばini)を入力し、各種key/valueの設定値を取得する。
confディレクトリの下にあるiniファイルを全て読み、そのsection、itemを表示する。
test_getconf.py
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_val2test2.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
- Tue
- 00:31
- python
pythonのパラメータ(プログラム引数)取得にOptionParserを利用。
Verは2.4.3で確認。
パラメータの形式はショート/ロング同時に指定できて便利。
ソースコード:test01_child.py
実行例:
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.