pythonモジュールのConfigPaser ini
9958 ワード
自己転載:http://hi.baidu.com/myitlyj/blog/item/25586bd7088ba3dba044df6b.html
プログラムの中で構成ファイルを使って柔軟に配置するのはよくあることです.構成ファイルの解析は複雑ではありません.pythonの中ではもっとそうです.公式発表のライブラリにはこのことをするライブラリが含まれています.それはConfigPaserです.ここで簡単に紹介します. ConfigPars解析の配置ファイルのフォーマットはiniに似ている配置ファイルのフォーマットを比較して、つまりファイルの中で複数のsectionから構成されていて、各sectionの下でまた複数の配置項目があります.ホット=127.1 db_ポルト=3306 db_user=rootdb_pass=password[concurrent]thread=10 processor=20 上の配置ファイルの名前をtest.co nfと仮定します.中には二つのセレクションが含まれています.一つはdbで、もう一つはconcurrentで、dbの中には4つが含まれています.concurrentの中には2つがあります.ここで解析をします.
プログラムの中で構成ファイルを使って柔軟に配置するのはよくあることです.構成ファイルの解析は複雑ではありません.pythonの中ではもっとそうです.公式発表のライブラリにはこのことをするライブラリが含まれています.それはConfigPaserです.ここで簡単に紹介します. ConfigPars解析の配置ファイルのフォーマットはiniに似ている配置ファイルのフォーマットを比較して、つまりファイルの中で複数のsectionから構成されていて、各sectionの下でまた複数の配置項目があります.ホット=127.1 db_ポルト=3306 db_user=rootdb_pass=password[concurrent]thread=10 processor=20 上の配置ファイルの名前をtest.co nfと仮定します.中には二つのセレクションが含まれています.一つはdbで、もう一つはconcurrentで、dbの中には4つが含まれています.concurrentの中には2つがあります.ここで解析をします.
#-*- encoding: gb2312 -*-
import ConfigParser
import string, os, sys
cf = ConfigParser.ConfigParser()
cf.read("test.conf")
# section
s = cf.sections()
print 'section:', s
o = cf.options("db")
print 'options:', o
v = cf.items("db")
print 'db:', v
print '-'*60
#
db_host = cf.get("db", "db_host")
db_port = cf.getint("db", "db_port")
db_user = cf.get("db", "db_user")
db_pass = cf.get("db", "db_pass")
#
threads = cf.getint("concurrent", "thread")
processors = cf.getint("concurrent", "processor")
print "db_host:", db_host
print "db_port:", db_port
print "db_user:", db_user
print "db_pass:", db_pass
print "thread:", threads
print "processor:", processors
# ,
cf.set("db", "db_pass", "zhaowei")
cf.write(open("test.conf", "w"))