Chinaunix首页 | 论坛 | 博客
  • 博客访问: 808942
  • 博文数量: 50
  • 博客积分: 757
  • 博客等级: 上士
  • 技术积分: 1913
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-29 14:29
个人简介

DBA

文章分类

全部博文(50)

文章存档

2015年(3)

2014年(2)

2013年(14)

2012年(19)

2011年(12)

分类: Python/Ruby

2013-01-31 12:06:01

转载自:http://hi.baidu.com/myitlyj/blog/item/25586bd7088ba3dba044df6b.html
在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,这里简单的做一些介绍。  
    ConfigParser解析的配置文件的格式比较象ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项,比如:  
[db]  
db_host=127.0.0.1  
db_port=3306  
db_user=root  
db_pass=password  
[concurrent]  
thread=10  
processor=20  

    假设上面的配置文件的名字为test.conf。里面包含两个section,一个是db, 另一个是concurrent, db里面还包含有4项,concurrent里面有两项。这里来做做解析:  
#-*- 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"))

阅读(3369) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~