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

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

我的栏目
  • 栏目:
51Testing软件测试网W4Y!d)e*s}(S

    在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,这里简单的做一些介绍。51Testing软件测试网 mHp]b2?ZKG
    ConfigParser解析的配置文件的格式比较象ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项,比如:
@-Px7stnl+p051Testing软件测试网9TV6vW*L4y0p
[db]51Testing软件测试网gu&QAs"d;gz
db_host=127.0.0.1
d6j@Un2b4V0db_port=330651Testing软件测试网6ab"v(LA!]
db_user=root51Testing软件测试网c6Sl(m~ PYp
db_pass=password51Testing软件测试网:] Qt t|aR
[concurrent]
ROVWlY0thread=1051Testing软件测试网Ivz dSe%C:w
processor=20
[q,h&w7t^Q051Testing软件测试网0].g$h3c+y.z
    假设上面的配置文件的名字为test.conf。里面包含两个section,一个是db, 另一个是concurrent, db里面还包含有4项,concurrent里面有两项。这里来做做解析:
0W}!J'pf$Q`051Testing软件测试网$d6k3z,aem2tU
#-*- encoding: gb2312 -*-51Testing软件测试网 N _A W"CL
import ConfigParser
!Ir.~? h7Y0import string, os, sys
*AShl(eg/TgN051Testing软件测试网)~qd w:o,Rp]
cf = ConfigParser.ConfigParser()51Testing软件测试网m)j1O/P9M~Axx*Ed p
cf.read("test.conf")51Testing软件测试网@n/Z:O8d}3|1K^
# 返回所有的section51Testing软件测试网o?{b:Mi[CAZ
s = cf.sections()
Y6H n _:m0print 'section:', s51Testing软件测试网|t!~'PW

/f9_ Py(Im)F6m l,dl0o = cf.options("db")
#Uxm B+ZS(j#V0print 'options:', o
fh\a3]b+S\1qJ(JA051Testing软件测试网MRc(Q(H r
v = cf.items("db")51Testing软件测试网Vaj&v7E`"L @l*F
print 'db:', v
,[,`)J9H cO0
!lo#h"T*G Y#w0print '-'*60
}(DRN@!V(}0#可以按照类型读取出来51Testing软件测试网N~4B,?4J9g`*s
db_host = cf.get("db", "db_host")51Testing软件测试网;ul.pwTt6^TG
db_port = cf.getint("db", "db_port")
8Q;_xE2uhM3a#T0db_user = cf.get("db", "db_user")
rTIH#Z7B Q$p0db_pass = cf.get("db", "db_pass")51Testing软件测试网O/fQ@Y&r"?0K

/q x7xG7ahl:P0# 返回的是整型的51Testing软件测试网1c[$];Fd
threads = cf.getint("concurrent", "thread")51Testing软件测试网"RQ1ov*SU
processors = cf.getint("concurrent", "processor")51Testing软件测试网 n QGB"kJH4G
51Testing软件测试网C ZV'K np7{B~r8D,g/Q
print "db_host:", db_host51Testing软件测试网OM9LB+q2@j
print "db_port:", db_port
6`&^S Y*V3U8`}0print "db_user:", db_user
`R!DAF&O$G7y%Y0print "db_pass:", db_pass
n8~7]bU0
*f1E;D5o{e4_ DW0print "thread:", threads
?7Tw9\ ?U0print "processor:", processors
ZJJ8hh7\wM0#修改一个值,再写回去
1Z ~ ]5S5JFKt'wn2w#u0cf.set("db", "db_pass", "zhaowei")51Testing软件测试网Ww O:{p{[w,O
cf.write(open("test.conf", "w"))

*A,vn C0H,sf&d0

TAG: Python python

 

评分:0

我来说两句

Open Toolbar