【ConfigParser模块】Python处理配置文件

1.基本的读取配置文件

-read(filename) 直接读取ini文件内容
-sections() 得到所有的section,并以列表的形式返回
-options(section) 得到该section的所有option
-items(section) 得到该section的所有键值对
-get(section,option) 得到section中option的值,返回为string类型
-getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。
 
2.基本的写入配置文件
-add_section(section) 添加一个新的section
-set( section, option, value) 对section中的option进行设置,需要调用write将内容写入配置文件。
 
3.基本例子
test.conf

1.      [sec_a] 

2.      a_key1 = 20 

3.      a_key2 = 10 

4.        

5.      [sec_b] 

6.      b_key1 = 121 

7.      b_key2 = b_value2 

8.      b_key3 = $r 

9.      b_key4 = 127.0.0.1 

parse_test_conf.py

1.      import ConfigParser 

2.        

3.      cf = ConfigParser.ConfigParser() 

4.        

5.      #read config

6.      cf.read("test.conf") 

7.        

8.      # return all section

9.      secs = cf.sections() 

10.   print 'sections:', secs 

11.     

12.   opts = cf.options("sec_a") 

13.   print 'options:', opts 

14.     

15.   kvs = cf.items("sec_a") 

16.   print 'sec_a:', kvs 

17.     

18.   #read by type

19.   str_val = cf.get("sec_a", "a_key1") 

20.   int_val = cf.getint("sec_a", "a_key2") 

21.     

22.   print "value for sec_a's a_key1:", str_val 

23.   print "value for sec_a's a_key2:", int_val 

24.     

25.   #write config

26.   #update value

27.   cf.set("sec_b", "b_key3", "new-$r") 

28.   #set a new value

29.   cf.set("sec_b", "b_newkey", "new-value") 

30.   #create a new section

31.   cf.add_section('a_new_section') 

32.   cf.set('a_new_section', 'new_key', 'new_value') 

33.     

34.   #write back to configure file

35.   cf.write(open("test.conf", "w")) 

 
得到终端输出:
sections: ['sec_b', 'sec_a'] 
options: ['a_key1', 'a_key2'] 
sec_a: [('a_key1', "i'm value"), ('a_key2', '22')] 
value for sec_a's a_key1: i'm value 
value for sec_a's a_key2: 22 

更新后的test.conf

1.      [sec_b] 

2.      b_newkey = new-value 

3.      b_key4 = 127.0.0.1 

4.      b_key1 = 121 

5.      b_key2 = b_value2 

6.      b_key3 = new-$r 

7.        

8.      [sec_a] 

9.      a_key1 = i'm value 

10.   a_key2 = 22 

11.     

12.   [a_new_section] 

13.   new_key = new_value 


4. RawConfigParser
、ConfigParser、SafeConfigParser

Python的ConfigParser Module中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser。RawCnfigParser是最基础的INI文件读取类,ConfigParser、SafeConfigParser支持对%(value)s变量的解析。 
 
设定配置文件test2.conf

1.      [portal] 

2.      url = http://%(host)s:%(port)s/Portal 

3.      host = localhost 

4.      port = 8080 


使用RawConfigParser

1.      import ConfigParser 

2.       

3.      cf = ConfigParser.RawConfigParser() 

4.       

5.      print "use RawConfigParser() read"

6.      cf.read("test2.conf") 

7.      print cf.get("portal", "url") 

8.       

9.      print "use RawConfigParser() write"

10.   cf.set("portal", "url2", "%(host)s:%(port)s") 

11.   print cf.get("portal", "url2") 


得到终端输出:
use RawConfigParser() read 
http://%(host)s:%(port)s/Portal 
use RawConfigParser() write 
%(host)s:%(port)s

改用ConfigParser

1.      import ConfigParser 

2.       

3.      cf = ConfigParser.ConfigParser() 

4.       

5.      print "use ConfigParser() read"

6.      cf.read("test2.conf") 

7.      print cf.get("portal", "url") 

8.       

9.      print "use ConfigParser() write"

10.   cf.set("portal", "url2", "%(host)s:%(port)s") 

11.   print cf.get("portal", "url2") 


得到终端输出:
use ConfigParser() read 
http://localhost:8080/Portal 
use ConfigParser() write 
localhost:8080

改用SafeConfigParser

1.      import ConfigParser 

2.       

3.      cf = ConfigParser.SafeConfigParser() 

4.       

5.      print "use SafeConfigParser() read"

6.      cf.read("test2.conf") 

7.      print cf.get("portal", "url") 

8.       

9.      print "use SateConfigParser() write"

10.   cf.set("portal", "url2", "%(host)s:%(port)s") 

11.   print cf.get("portal", "url2") 


得到终端输出(效果同ConfigParser):
use SafeConfigParser() read 
http://localhost:8080/Portal 
use SateConfigParser() write 
localhost:8080 


转自:http://blog.chinaunix.net/uid-23500957-id-3781166.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值