zoukankan      html  css  js  c++  java
  • 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.
     
     
  • 相关阅读:
    深入理解JavaScript系列(24):JavaScript与DOM(下)
    大叔手记(20):ASP.NET MVC中使用jQuery时的浏览器缓存问题
    深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP
    深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP
    深入理解JavaScript系列(23):JavaScript与DOM(上)——也适用于新手
    深入理解JavaScript系列(25):设计模式之单例模式
    深入理解JavaScript系列(26):设计模式之构造函数模式
    ASP.NET GridView中使用搜索框(SearchableGridView)
    WPF中的图表设计器 – 1
    使用URL Routing进行数据分页
  • 原文地址:https://www.cnblogs.com/balaamwe/p/2679021.html
Copyright © 2011-2022 走看看