python 的 ConfigParser 模塊

樣例文件

  • 該類配置文件能夠包含一個或多個節(section),每一個節能夠有多個參數(鍵=值)。
  • 樣例配置文件(/proj/conf/example_conf)
    [book]  
    title:ConfigParser模塊教程  
    author:大頭爸爸  
    email:366500050@qq.com  
    time:2012-09-20 22:04:55  
    [size]  
    size:1024  
    [other]  
    blog:csdn.net
  • 上面配置文件中用的是冒號,也能夠用等號。

讀取配置文件

  • 示例文件: example.py
    # -*- coding: utf-8 -*-  
    import ConfigParser  
    import string  
    config=ConfigParser.ConfigParser()  
    config.read(u'/proj/conf/example_conf')  
    print string.upper(config.get("book","title")),  
    print "by",config.get("book","author"),  
    print "("+config.get("book","email")+")"  
    print  
    print config.get("size","size")  
    print  
    print config.sections()  
    for section in config.sections():  
        print section  
        for option in config.options(section):  
            print " ",option,"=",config.get(section,option)
  • example.py文件執行結果
    CONFIGPARSER模塊教程 by 大頭爸爸 (366500050@qq.com)  
    1024  
      ['book', 'size', 'other']  
    book  
      title = ConfigParser模塊教程  
      author = 大頭爸爸  
      email = 366500050@qq.com  
      time = 2012-09-20 22:04:55  size  
      size = 1024  other  
      blog = csdn.n

寫入配置文件

  • 示例
    import ConfigParser  
    import sys  
    config=ConfigParser.ConfigParser()  
    config.add_section("book")  
    config.set("book","title","這是標題")  
    config.set("book","author","大頭爸爸")  
    config.add_section("size")  
    config.set("size","size",1024)  
    config.write(sys.stdout)
  • 執行結果
    [book]  
    title = 這是標題  
    author = 大頭爸爸  
    [size]  
    size = 1024

ConfigParser方法

  • 建立ConfigParser實例
    config=ConfigParser.ConfigParser()
  • 返回配置文件中節序列
    config.sections()
  • 返回某個項目中的全部鍵的序列
    config=ConfigParser.ConfigParser()  
    config.options(section)
  • 返回section節中,option的鍵值
    config=ConfigParser.ConfigParser()  
    config.get(section,option)
  • 添加一個配置文件節點(str)
    config=ConfigParser.ConfigParser()  
    config.add_section(str)
  • 設置section節點中,鍵名爲option的值(val)
    config=ConfigParser.ConfigParser()  
    config.set(section,option,val)
  • 讀取配置文件
    config=ConfigParser.ConfigParser()  
    config.read(filename)
  • 寫入配置文件
    config=ConfigParser.ConfigParser()  
    config.write(obj_file)

綜合實例

#coding=utf-8  
  
import ConfigParser  
  
def writeConfig(filename):  
    config = ConfigParser.ConfigParser()  
    # set db  
    section_name = 'db'  
    config.add_section( section_name )  
    config.set( section_name, 'dbname', 'MySQL')  
    config.set( section_name, 'host', '127.0.0.1')  
    config.set( section_name, 'port', '80')  
    config.set( section_name, 'password', '123456')  
    config.set( section_name, 'databasename', 'test')  
  
    # set app  
    section_name = 'app'  
    config.add_section( section_name )  
    config.set( section_name, 'loggerapp', '192.168.20.2')  
    config.set( section_name, 'reportapp', '192.168.20.3')  
  
    # write to file  
    config.write( open(filename, 'a') )  
  
def updateConfig(filename, section, **keyv):  
    config = ConfigParser.ConfigParser()  
    config.read(filename)  
    print config.sections()  
    for section in config.sections():  
        print "[",section,"]"  
        items = config.items(section)  
        for item in items:  
            print "\t",item[0]," = ",item[1]  
    print config.has_option("dbname", "MySQL")  
    print config.set("db", "dbname", "11")  
    print "..............."  
    for key in keyv:  
        print "\t",key," = ", keyv[key]  
    config.write( open(filename, 'r+') )  
  
if __name__ == '__main__':  
    file_name = 'test.ini'  
    writeConfig(file_name)  
    updateConfig(file_name, 'app', reportapp = '192.168.100.100')  
    print "end__"
相關文章
相關標籤/搜索