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

【转载】Python ConfigParser的使用的更多相关文章

  1. [转载] Python数据类型知识点全解

    [转载] Python数据类型知识点全解 1.字符串 字符串常用功能 name = 'derek' print(name.capitalize()) #首字母大写 Derek print(name.c ...

  2. [转载]Python 包管理工具

    [转载]Python 包管理工具 最近由于机缘巧合,使用各种方法安装了一些Python包,所以对Python的包管理开始感兴趣.在网上找到一篇很好的文章:https://blog.zengrong.n ...

  3. 转载--python模块

    模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才 ...

  4. 转载:python基础之模块

    作者:武沛齐 出处:http://www.cnblogs.com/wupeiqi/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. 模块,用一 ...

  5. [转载]Python 资源大全中文版

    [转载]Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-python 是 vinta 发起维护的 Python ...

  6. [转载]Python 元组、列表、字典、文件

    python的元组.列表.字典数据类型是很python(there python is a adjective)的数据结构.这些结构都是经过足够优化后的,所以如果使用好的话,在某些area会有很大的益 ...

  7. [转载]Python 资源大全

    原文链接:Python 资源大全 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex  ...

  8. [转载] python 计算字符串长度

    本文转载自: http://www.sharejs.com/codes/python/4843 python 计算字符串长度,一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函 ...

  9. python configparser模块

    来看一个好多软件的常见文档格式如下: [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 Forward ...

随机推荐

  1. Android ViewGroup等容器控件的使用

    在Android中,可以自定义类,继承ViewGroup等容器类,以实现自己需要的布局显示.如果你在ViewGroup中增加了控件,却无法显示出 来,那么下面这个例子,就可以用来参考了.(主要是要实现 ...

  2. hdu3032sg打表找规律

    先打个表冷静一下 #include<map> #include<set> #include<cmath> #include<queue> #includ ...

  3. iOS 地图 通过经纬度计算两点间距离

    - (double)calculateStart:(CLLocationCoordinate2D)start end:(CLLocationCoordinate2D)end { ; double st ...

  4. Protel画完原理图检查的时候出现了这些错误 #1 Error Multiple Net Identifiers

    Error Report For : Documents\Sheet1.Sch 24-Aug-2009 14:58:43 #1 Error Multiple Net Identifiers : She ...

  5. Qt SD卡 文件系统挂载、文件预览

    /********************************************************************************** * Qt SD卡 文件系统挂载. ...

  6. swift3.0  代码创建经典界面的九宫图--优化篇

    在上一篇只是简单实现了九宫图效果,本章需要形成APP界面九宫图效果 override func viewDidLoad() { super.viewDidLoad() createnine() } / ...

  7. Gym 100712L Alternating Strings II(单调队列)

    题目链接 Alternating Strings II 题意是指给出一个长度为n的01串,和一个整数k,要求将这个01串划分为很多子串(切很多刀),使得每个子串长度不超过k,且每个字串不是01交替出现 ...

  8. python list 中元素的统计与排序

    1.  用count和dict.  dict的存储是散乱的, 不方面打印. 2. 用sorted.  注意, 得到的是一个元组list, 而不再是dict. dict_x = {} for item ...

  9. mongodb sharding集群搭建

    创建虚拟机,如果是使用copy的方式安装系统,记得修改机器名,否则所有的机器名称都一样,会造成安装失败 同时关闭掉防火墙,将所有的机器的时间调成一致,master和slave的heartbeat间隔不 ...

  10. Mac OS Alfred 2 tips

    From: http://www.uuair.cn/?p=64 写这个东西,我没敢叫指南之类,只能算是技巧,因为Alfred这个软件的强大,我还没研究明白,还有好多功能自己没搞懂,所以写一些我发现或者 ...