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__"
流放百事千秋万岁,后世为我立传刻碑

浙公网安备 33010602011771号