• ConfigParser模块的使用


    1.读取配置文件
    -read(filename) 直接读取ini文件内容
    -sections() 得到所有的section,并以列表的形式返回
    -options(section) 得到该section的所有option
    -items(section) 得到该section的所有键值对
    -get(section,option) 得到sectionoption的值,返回为string类型
    -getint(section,option) 得到sectionoption的值,返回为int类型
     
    2.写入配置文件
    -add_section(section) 添加一个新的section
    -set( section, option, value) section中的option进行设置
             需要调用write将内容写入配置文件。
     
    3.例子
    test.conf
    [sec_a]
    a_key1 = 20
    a_key2 = 10
     
    [sec_b]
    b_key1 = 121
    b_key2 = b_value2
    b_key3 = $r
    b_key4 = 127.0.0.1
     
    parse_test_conf.py
    import ConfigParser
     
    cf = ConfigParser.ConfigParser()
     
    #read config
    cf.read("test.conf")
     
    # return all section
    secs = cf.sections()
    print 'sections:', secs
     
    opts = cf.options("sec_a")
    print 'options:', opts
     
    kvs = cf.items("sec_a")
    print 'sec_a:', kvs
     
    #read by type
    str_val = cf.get("sec_a", "a_key1")
    int_val = cf.getint("sec_a", "a_key2")
     
    print "value for sec_a's a_key1:", str_val
    print "value for sec_a's a_key2:", int_val
     
    #write config
    #update value
    cf.set("sec_b", "b_key3", "new-$r")
    #set a new value
    cf.set("sec_b", "b_newkey", "new-value")
    #create a new section
    cf.add_section('a_new_section')
    cf.set('a_new_section', 'new_key', 'new_value')
     
    #write back to configure file
    cf.write(open("test.conf", "w"))
     
    print
    sections: ['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 value
    value for sec_a's a_key2: 22
     
    更新后的test.conf
    [sec_b]
    b_newkey = new-value
    b_key4 = 127.0.0.1
    b_key1 = 121
    b_key2 = b_value2
    b_key3 = new-$r
     
    [sec_a]
    a_key1 = i'm value
    a_key2 = 22
     
    [a_new_section]
    new_key = new_value
     
    4.可能抛出的异常
    exception NoSectionError
    Exception raised when a specified section is not found.
    exception DuplicateSectionError
    Exception raised if add_section() is called with the name of a section that is already present.
    exception NoOptionError
    Exception raised when a specified option is not found in the specified section.
    exception InterpolationError
    Base class for exceptions raised when problems occur performing string interpolation.
    exception InterpolationDepthError
    Exception raised when string interpolation cannot be completed because the number of iterations exceeds MAX_INTERPOLATION_DEPTH. Subclass of InterpolationError.
    exception InterpolationMissingOptionError
    Exception raised when an option referenced from a value does not exist. Subclass of InterpolationError. New in version 2.3.
    exception InterpolationSyntaxError
    Exception 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 MissingSectionHeaderError
    Exception raised when attempting to parse a file which has no section headers.
    exception ParsingError
    Exception raised when errors occur attempting to parse a file.
     
     
  • 相关阅读:
    图论-最短路
    windows对拍及其应用
    RMQ与st表
    树状数组
    二分和三分题
    [转载]图论500题
    浏览器请求背后的网络数据传输过程
    百度ocr文字识别接口使用
    Mysql启动报错解决方案:Failed to open log (file './mysql-bin.000901', errno 2)
    Mac环境下nginx https配置
  • 原文地址:https://www.cnblogs.com/balaamwe/p/2679021.html
Copyright © 2020-2023  润新知