ConfigParser模块记录

ConfigParser模块
python版本2.6
 
ConfigParser模块用于读取、写入配置文件
 
 
配置文件的文件后缀没有特别要求,一般以ini结尾
配置文件的结构一般以section和option组成,以下为configtest.ini内容
[test1]
value1 = 1
value2 : 2
以上中test1表示section,option可用等号也可用冒号组成
 
该模块有三个类,通常都是使用ConfigParser.ConfigParser([defaults[,dict_type]])来创建一个实例对象,而后再进行各项操作
 
 
以下为一段对configtest.ini配置文件进行写入的代码
def configwritetest():
    try:
        cf = ConfigParser.ConfigParser()
        #cf.add_section('default2')
        cf.add_section( 'test1')
        cf.set( 'test1', 'value1' , '1')
        cf.set( 'test1', 'value2' , '2')
        with open( 'configtest.ini', ' wb') as f:
            cf.write(f)
    except Exception as a:
        print a
    finally:
        print 'end'
pass

 

以下为一段对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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值