python config

发布时间:2019-08-24 09:33:48编辑:auto阅读(1594)

    Python模块之: ConfigParser 配置文件读取

    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) 得到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.
     

关键字

上一篇: python安装

下一篇: H3C DHCP