python模块之ConfigParser: 用python解析配置文件

上一篇 / 下一篇  2012-11-06 14:18:58 / 个人分类:Python

我的栏目
  • 栏目:
51Testing软件测试网 `*w fWVl \

    在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,这里简单的做一些介绍。51Testing软件测试网@ t:_Gyha
    ConfigParser解析的配置文件的格式比较象ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项,比如:51Testing软件测试网 H7w b Ks*LE

c,h}j+X B` _W0[db]51Testing软件测试网;_#t$]M+\X
db_host=127.0.0.151Testing软件测试网 J0h1]t t Ovr?
db_port=330651Testing软件测试网*@'s.@ ud
db_user=root
Y0tJr#D1u[[0db_pass=password
@+W~U&u?0[concurrent]51Testing软件测试网!m'W j3W?#P6B%}S
thread=10
U3z{8c K2u{"T/tb g0processor=20
yY@2A!Bh9m#c+et9T051Testing软件测试网 Ol2A5GW;W WK'Y4j
    假设上面的配置文件的名字为test.conf。里面包含两个section,一个是db, 另一个是concurrent, db里面还包含有4项,concurrent里面有两项。这里来做做解析:51Testing软件测试网8v.RRs%N,WVq

b3r] O W'~k0#-*- encoding: gb2312 -*-
+G0{ P.gKr0import ConfigParser
,xNXW@ B0import string, os, sys
-xu-j.T6J%\}0
Es/D ] [n co0cf = ConfigParser.ConfigParser()
0R2v^iP%J+p {t0cf.read("test.conf")51Testing软件测试网M,~,D5G!x hs3g
# 返回所有的section51Testing软件测试网[&ScG9T!f3Qjr/`m
s = cf.sections()51Testing软件测试网)U{.LY7\^9Hz[,Q
print 'section:', s51Testing软件测试网*dC!L cz\'J
51Testing软件测试网8a8w"v6rQZ%j
o = cf.options("db")51Testing软件测试网CsW S;~jq%dg;O
print 'options:', o
D+f Q8x!h;~nm0
"ZWy o P Tk0v = cf.items("db")51Testing软件测试网%q2rly8P'U3W.h5}
print 'db:', v51Testing软件测试网I6H#Q6yu9I7aN7R${

[0PK D5vz M:@w(h#s0print '-'*6051Testing软件测试网1`$I XW-Mu
#可以按照类型读取出来51Testing软件测试网-[0RED,jQ!G/h/_*BV
db_host = cf.get("db", "db_host")
"y&}9Kci[0db_port = cf.getint("db", "db_port")
#|9Rv-L*p|0db_user = cf.get("db", "db_user")51Testing软件测试网-db O1\ {'jo,P#[
db_pass = cf.get("db", "db_pass")
;q0r?!x-Cv$gE0
j Vx2T.L:[(R$h0# 返回的是整型的51Testing软件测试网B%qw.{+kX6UJ
threads = cf.getint("concurrent", "thread")51Testing软件测试网dqQg*Tg7{
processors = cf.getint("concurrent", "processor")
~;W.dn%JrHe+]0
W'L!r&Qm.Xf:S.B0print "db_host:", db_host51Testing软件测试网"f\ oP)GmL
print "db_port:", db_port
6P6l*V2tV$C*Ip0print "db_user:", db_user51Testing软件测试网G!R Ol&A
print "db_pass:", db_pass51Testing软件测试网m-VZ1}0av H
51Testing软件测试网@ fI7r3_-x;XU
print "thread:", threads
1@)w M2Kbn-]0print "processor:", processors51Testing软件测试网w,azcF w$w
#修改一个值,再写回去51Testing软件测试网}[9Eh+h&Y*k&j0~
cf.set("db", "db_pass", "zhaowei")51Testing软件测试网ti6pRD
cf.write(open("test.conf", "w"))51Testing软件测试网3wGRf%P8F"XH(vW)d


TAG: Python python

 

评分:0

我来说两句

Open Toolbar