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.
     
     
  • 相关阅读:
    【每天学习一点点】Tensorflow 版本与CUDA版本
    【每天学习一点点】使用plot_model绘制网络模式失败
    【每天学习一点点】keras cifar10.load_data()自己下载数据
    【每天学习一点点】Tensorflow2.X 运行问题:Could not create cudnn handle: CUDNN_STATUS_ALLOC_FAILED
    【每天学习一点点】mxnet 版本运行失败问题
    【每天学习一点点】Tensorflow GPU与CPU版本
    【每天学习一点点】不再显示I信息(Tensorflow GPU)
    C# Dynamic特性
    豆瓣,你的前端开发有点幽默了
    配置SHH集群
  • 原文地址:https://www.cnblogs.com/balaamwe/p/2679021.html
Copyright © 2011-2022 走看看