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. postman 安装桌面版

    https://github.com/postmanlabs/postman-app-support

  2. Java中的String和StringBuffer

    在任何编程语言中,字符串都是我们编写程序时不可避免要用到的常用的数据类型之一. 对于Java初学者而言,当谈到String和StringBuffer的区别时,通常都会有些困惑. 而要弄清楚两者之间的区 ...

  3. java中如何使用Junit测试

    java中如何使用Junit测试 一.总结 一句话总结:a.单元测试的测试代码在test文件夹下,和源码不在同一个文件夹下 b.测试的类方法都以test开头,后面接要测试的类或者方法的名字 1.JUn ...

  4. idea JMX 连接器服务器通信错误

    错误描述:错误: JMX 连接器服务器通信错误: service:jmx:rmi://DESKTOP-46OA4KK 打开Edit Configurations 发现vm options那一栏居然是空 ...

  5. hdu3032sg打表找规律

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

  6. hdu4292网络流dinic

    因为数组开小了,导致tle了一整天:( tle的几点原因:http://blog.csdn.net/ameir_yang/article/details/53698478 思路都是对的,把每个人进行拆 ...

  7. torch中的多线程threads学习

    torch中的多线程threads学习 torch threads threads 包介绍 threads package的优势点: 程序中线程可以随时创建 Jobs被以回调函数的形式提交给线程系统, ...

  8. vue兼容ie

    为了兼容IE github build/webpack.base.conf.js [vuex] vuex requires a Promise polyfill in this browser. // ...

  9. [转载]从B 树、B+ 树、B* 树谈到R 树

    从B 树.B+ 树.B* 树谈到R 树 作者:July.weedge.Frankie.编程艺术室出品. 说明:本文从B树开始谈起,然后论述B+树.B*树,最后谈到R 树.其中B树.B+树及B*树部分由 ...

  10. Swift 标签控制器(tabbar添加提醒和控制器)

    // Override point for customization after application launch. //初始化window, 大小为设备物理大小 self.window = U ...