以下为一段对configtest.ini配置文件进行读取的代码 def configreadtest(): try: cf = ConfigParser.ConfigParser() cf.read( 'configtest.ini') print cf.has_section( 'test1') print cf.get( 'test1', 'value1' ) print cf.get( 'test1', 'value2' ) print cf.getint( 'test1', 'value2' ) print cf.getfloat( 'test1', 'value2' ) print cf.getboolean( 'test1', 'value1' ) print cf.items( 'test1') print cf.options( 'test1') except Exception as a: print a finally: print 'end' pass
两段代码都是常用的对配置文件进行写入和读取的操作,通俗易懂,不多说。在配置文件中,有一个特殊的section是保留的,即“DEFAULT”,在写入和读取操作中都不能涉及到该section通但该section却常用于初始化,有其妙用之处。比如configtest.ini的内容如下 [DEFAULT] a = one [test1] value2 = 2 value1 = %(a)s1 def configreadtest2(): try: cf = ConfigParser.ConfigParser() cf.read( 'configtest.ini') print cf.defaults() print cf.get( 'test1', 'value1' ) print cf.get( 'test1', 'value2' ) except Exception as a: print a finally: print 'end' pass 以上程序运行后结果如下: {'a': 'one'} one1 2 end 可以发现, %(a)s已经被转换为a的值one,如此便能用于解决一些需要灵活配置的场景 而ConfigParser.ConfigParser([defaults[,dict_type]])的defaults参数也有其妙用之处 比如configtest.ini的内容如下 [DEFAULT] a = one [test1] value3 = %(b)d1 value2 = 2 value1 = %(a)s1 def configreadtest(): try: cf = ConfigParser.ConfigParser({ 'b':2 }) cf.read( 'configtest.ini') print cf.defaults() print cf.get( 'test1', 'value1' ) print cf.get( 'test1', 'value2' ) print cf.get( 'test1', 'value3' ) except Exception as a: print a finally: print 'end' pass 以上程序运行后结果如下: {'a': 'one', 'b': 2} one1 2 21 end 可以看出 { 'b' : 2 }也成为了DEFAULT中的option,如此更可以灵活的在程序中进行相应的配置来解决一些特殊场景的需求,当defaults参数中的option与配置文件中本身的option出现相同情况时,依旧以配置文件本身的option为准。
转载于:https://www.cnblogs.com/mitingmai/p/3400202.html