zoukankan      html  css  js  c++  java
  • python configparser模块

    1.基本的读取配置文件

    -read(filename) 直接读取ini文件内容
    -sections() 得到所有的section,并以列表的形式返回
    -options(section) 得到该section的所有option
    -items(section) 得到该section的所有键值对
    -get(section,option) 得到section中option的值,返回为string类型
    -getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。
     
    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")) 
     
    得到终端输出:
    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.Python的ConfigParser Module中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、 SafeConfigParser。RawCnfigParser是最基础的INI文件读取类,ConfigParser、 SafeConfigParser支持对%(value)s变量的解析。 
     
    设定配置文件test2.conf

    [portal] 
    url = http://%(host)s:%(port)s/Portal 
    host = localhost 
    port = 8080 

    使用RawConfigParser:

    import ConfigParser 
     
    cf = ConfigParser.RawConfigParser() 
     
    print "use RawConfigParser() read"
    cf.read("test2.conf") 
    print cf.get("portal", "url") 
     
    print "use RawConfigParser() write"
    cf.set("portal", "url2", "%(host)s:%(port)s") 
    print cf.get("portal", "url2") 

    得到终端输出:
    use RawConfigParser() read 
    http://%(host)s:%(port)s/Portal 
    use RawConfigParser() write 
    %(host)s:%(port)s

    改用ConfigParser:

    import ConfigParser 
     
    cf = ConfigParser.ConfigParser() 
     
    print "use ConfigParser() read"
    cf.read("test2.conf") 
    print cf.get("portal", "url") 
     
    print "use ConfigParser() write"
    cf.set("portal", "url2", "%(host)s:%(port)s") 
    print cf.get("portal", "url2") 

    得到终端输出:
    use ConfigParser() read 
    http://localhost:8080/Portal 
    use ConfigParser() write 
    localhost:8080

    改用SafeConfigParser:

    import ConfigParser 
     
    cf = ConfigParser.SafeConfigParser() 
     
    print "use SafeConfigParser() read"
    cf.read("test2.conf") 
    print cf.get("portal", "url") 
     
    print "use SateConfigParser() write"
    cf.set("portal", "url2", "%(host)s:%(port)s") 
    print cf.get("portal", "url2") 

    得到终端输出(效果同ConfigParser):
    use SafeConfigParser() read 
    http://localhost:8080/Portal 
    use SateConfigParser() write 
    localhost:8080 
  • 相关阅读:
    How To Scan QRCode For UWP (4)
    How To Crop Bitmap For UWP
    How To Scan QRCode For UWP (3)
    How To Scan QRCode For UWP (2)
    How To Scan QRCode For UWP (1)
    How to change windows applicatioin's position via Win32 API
    8 Ways to Become a Better Coder
    How to resize or create a thumbnail image from file stream on UWP
    C# winform压缩文件夹带进度条
    MS ACCESS MID函数
  • 原文地址:https://www.cnblogs.com/begoogatprogram/p/4666590.html
Copyright © 2011-2022 走看看