Python中的ConfigParser模块使用详解


Posted in Python onMay 04, 2015

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 相关文章推荐
python之wxPython菜单使用详解
Sep 28 Python
python的re正则表达式实例代码
Jan 24 Python
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
python画柱状图--不同颜色并显示数值的方法
Dec 13 Python
Python饼状图的绘制实例
Jan 15 Python
python3的print()函数的用法图文讲解
Jul 16 Python
Python中IP地址处理IPy模块的方法
Aug 16 Python
python中enumerate() 与zip()函数的使用比较实例分析
Sep 03 Python
python 实现将list转成字符串,中间用空格隔开
Dec 25 Python
Python多个装饰器的调用顺序实例解析
May 22 Python
sklearn和keras的数据切分与交叉验证的实例详解
Jun 19 Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 Python
Python的__builtin__模块中的一些要点知识
May 02 #Python
一些Python中的二维数组的操作方法
May 02 #Python
在Python的Tornado框架中实现简单的在线代理的教程
May 02 #Python
探究Python的Tornado框架对子域名和泛域名的支持
May 02 #Python
Python编程中运用闭包时所需要注意的一些地方
May 02 #Python
按日期打印Python的Tornado框架中的日志的方法
May 02 #Python
详细解读Python的web.py框架下的application.py模块
May 02 #Python
You might like
PHP实现的简单网络硬盘
2015/07/29 PHP
smarty简单应用实例
2015/11/03 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
js特效,页面下雪的小例子
2013/06/17 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
jQuery实现表单步骤流程导航代码分享
2015/08/28 Javascript
js窗口关闭提示信息(兼容IE和firefox)
2015/10/23 Javascript
微信小程序 教程之列表渲染
2016/10/18 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
js实现功能比较全面的全选和多选
2017/03/02 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
Vue项目History模式404问题解决方法
2018/10/31 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
原生JS实现天气预报
2020/06/16 Javascript
python 实现登录网页的操作方法
2018/05/11 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
2018/10/23 Python
基于python+selenium的二次封装的实现
2020/01/06 Python
Pytorch释放显存占用方式
2020/01/13 Python
Jupyter notebook运行Spark+Scala教程
2020/04/10 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
捐书寄语赠言
2014/01/18 职场文书
揭牌仪式策划方案
2014/05/28 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
团队会宣传标语
2014/10/09 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
党支部鉴定意见
2015/06/02 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
2016年党员学习廉政准则心得体会
2016/01/20 职场文书
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers