Python模块之: ConfigParser 配置文件读取
http://zhangjunhd.blog.51cto.com/113473/348863 http://docs.python.org/library/configparser.html
http://www.linux-field.com/?p=437
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类型 2.写入配置文件-add_section(section) 添加一个新的section-set( section, option, value) 对section中的option进行设置 需要调用write将内容写入配置文件。 3.例子test.conf[sec_a]a_key1 = 20a_key2 = 10 [sec_b]b_key1 = 121b_key2 = b_value2b_key3 = $rb_key4 = 127.0.0.1 parse_test_conf.pyimport ConfigParser cf = ConfigParser.ConfigParser() #read configcf.read("test.conf") # return all sectionsecs = cf.sections()print 'sections:', secs opts = cf.options("sec_a")print 'options:', opts kvs = cf.items("sec_a")print 'sec_a:', kvs #read by typestr_val = cf.get("sec_a", "a_key1")int_val = cf.getint("sec_a", "a_key2") print "value for sec_a's a_key1:", str_valprint "value for sec_a's a_key2:", int_val #write config#update valuecf.set("sec_b", "b_key3", "new-$r")#set a new valuecf.set("sec_b", "b_newkey", "new-value")#create a new sectioncf.add_section('a_new_section')cf.set('a_new_section', 'new_key', 'new_value') #write back to configure filecf.write(open("test.conf", "w")) printsections: ['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 valuevalue for sec_a's a_key2: 22 更新后的test.conf[sec_b]b_newkey = new-valueb_key4 = 127.0.0.1b_key1 = 121b_key2 = b_value2b_key3 = new-$r [sec_a]a_key1 = i'm valuea_key2 = 22 [a_new_section]new_key = new_value 4.可能抛出的异常exception NoSectionErrorException raised when a specified section is not found.exception DuplicateSectionErrorException raised if add_section() is called with the name of a section that is already present.exception NoOptionErrorException raised when a specified option is not found in the specified section.exception InterpolationErrorBase>exception InterpolationDepthErrorException raised when string interpolation cannot be completed because the number of iterations exceeds MAX_INTERPOLATION_DEPTH. Subclass of InterpolationError.exception InterpolationMissingOptionErrorException raised when an option referenced from a value does not exist. Subclass of InterpolationError. New in version 2.3.exception InterpolationSyntaxErrorException raised when the source text into which substitutions are made does not conform to the required syntax. Subclass of InterpolationError. New in version 2.3.exception MissingSectionHeaderErrorException raised when attempting to parse a file which has no section headers.exception ParsingErrorException raised when errors occur attempting to parse a file.