python 的 ConfigParser 模块

configParser 模块用于操作特定格式的配置文件,该类配置文件可以包含一个或多个节(section),每个节可以有多个参数(键=值)。

样例配置文件(/home/colben/git/python/conf/example_conf)

 1 [book]  
 2 title:ConfigParser模块教程  
 3 author:大头爸爸  
 4 email:366500050@qq.com  
 5 time:2012-09-20 22:04:55  
 6   
 7 [size]  
 8 size:1024  
 9   
10 [other]  
11 blog:csdn.net

上面配置文件中用的是冒号,也可以用等号。

example.py文件

 1 # -*- coding: utf-8 -*-  
 2 import ConfigParser  
 3 import string  
 4 config=ConfigParser.ConfigParser()  
 5 config.read(u'd:/百度网盘/android/Python/python_example/sample.ini')  
 6 print string.upper(config.get("book","title")),  
 7 print "by",config.get("book","author"),  
 8 print "("+config.get("book","email")+")"  
 9 print  
10 print config.get("size","size")  
11 print  
12 print config.sections()  
13   
14 for section in config.sections():  
15     print section  
16     for option in config.options(section):  
17         print " ",option,"=",config.get(section,option)

example.py文件执行结果

CONFIGPARSER模块教程 by 大头爸爸 (366500050@qq.com)  
  
1024  
  
['book', 'size', 'other']  
book  
  title = ConfigParser模块教程  
  author = 大头爸爸  
  email = 366500050@qq.com  
  time = 2012-09-20 22:04:55  
size  
  size = 1024  
other  
  blog = csdn.n

写入配置文件实例

1 import ConfigParser  
2 import sys  
3 config=ConfigParser.ConfigParser()  
4 config.add_section("book")  
5 config.set("book","title","这是标题")  
6 config.set("book","author","大头爸爸")  
7 config.add_section("size")  
8 config.set("size","size",1024)  
9 config.write(sys.stdout)

执行结果

[book]  
title = 这是标题  
author = 大头爸爸  
  
[size]  
size = 1024

ConfigParser方法

#1、创建ConfigParser实例  
config=ConfigParser.ConfigParser()  
  
#2、返回配置文件中节序列  
config.sections()  
  
#3、返回某个项目中的所有键的序列  
config.options(section)  
  
#4、返回section节中,option的键值  
config.get(section,option)  
  
#5、添加一个配置文件节点(str)  
config.add_section(str)  
  
#6、设置section节点中,键名为option的值(val)  
config.set(section,option,val)  
  
#7、读取配置文件  
config.read(filename)  
  
#8、写入配置文件  
config.write(obj_file)  

 综合实例

 1 #coding=utf-8  
 2   
 3 import ConfigParser  
 4   
 5 def writeConfig(filename):  
 6     config = ConfigParser.ConfigParser()  
 7     # set db  
 8     section_name = 'db'  
 9     config.add_section( section_name )  
10     config.set( section_name, 'dbname', 'MySQL')  
11     config.set( section_name, 'host', '127.0.0.1')  
12     config.set( section_name, 'port', '80')  
13     config.set( section_name, 'password', '123456')  
14     config.set( section_name, 'databasename', 'test')  
15   
16     # set app  
17     section_name = 'app'  
18     config.add_section( section_name )  
19     config.set( section_name, 'loggerapp', '192.168.20.2')  
20     config.set( section_name, 'reportapp', '192.168.20.3')  
21   
22     # write to file  
23     config.write( open(filename, 'a') )  
24   
25 def updateConfig(filename, section, **keyv):  
26     config = ConfigParser.ConfigParser()  
27     config.read(filename)  
28     print config.sections()  
29     for section in config.sections():  
30         print "[",section,"]"  
31         items = config.items(section)  
32         for item in items:  
33             print "\t",item[0]," = ",item[1]  
34     print config.has_option("dbname", "MySQL")  
35     print config.set("db", "dbname", "11")  
36     print "..............."  
37     for key in keyv:  
38         print "\t",key," = ", keyv[key]  
39     config.write( open(filename, 'r+') )  
40   
41 if __name__ == '__main__':  
42     file_name = 'test.ini'  
43     writeConfig(file_name)  
44     updateConfig(file_name, 'app', reportapp = '192.168.100.100')  
45     print "end__" 

 

posted @ 2014-12-17 15:39  colben  阅读(140)  评论(0)    收藏  举报