Python中使用ConfigParser解析ini配置文件实例


Posted in Python onAugust 30, 2014

ini文件是windows中经常使用的配置文件,主要的格式为:

[Section1]

option1 : value1

option2 : value2

python提供了一个简单的模块ConfigParser可以用来解析类似这种形式的文件。对于ConfigParser模块可以解析key:value和key=value这样的类型,对于#和;开头的行将会自动忽视掉。相当于注释行。常用的函数:
ConfigParser.RawConfigParser()
RawConfigParser Object的操作有:
.sections() : 返回所有可用的section 

.addsection(sectionname) :添加section 

.set(sectionname, optionname, optionvalue): 添加option 

.hassection(sectionname) :判断 

.options(sectionname) : 返回section下可用的option 

.hasoption(sectionname, optionname) : 判断 

.read(filename) : 读取文件 

.wrie(filename) : 将RawConfigParser对象写到文件中 

.get(sectionname, optionname) : 获取值, 默认的是返回string类型 

.getfloat, .getint, .getboolean : 获取不同类型的返回值,参数和get的参数一样 

.items(sectionname) :列出section下的所有key:value 

.remove(sectionname) :删除section 

.remove(sectionname, option_name) : 删除section下的某个option

Demo -- 生成文件
$ cat ini_demo.py

# -*- coding:utf-8 -*-
import ConfigParser
def gen_ini():

    ftest = open('test','w')

    config_write = ConfigParser.RawConfigParser()

    config_write.add_section('Section_a')

    config_write.add_section('Section_b')

    config_write.add_section('Section_c')

    config_write.set('Section_a','option_a1','apple_a1')

    config_write.set('Section_a','option_a2','banana_a2')

    config_write.set('Section_b','option_b1','apple_b1')

    config_write.set('Section_b','option_b2','banana_b2')

    config_write.set('Section_c','option_c1','apple_c1')

    config_write.set('Section_c','option_c2','banana_c2')   

    config_write.write(ftest)

    ftest.close()
if __name__ == "__main__":

    gen_ini()

最后生成的文件为:
$ cat test

[Section_a]

option_a1 = apple_a1

option_a2 = banana_a2
[Section_c]

option_c2 = banana_c2

option_c1 = apple_c1
[Section_b]

option_b1 = apple_b1

option_b2 = banana_b2

Demo -- 读取文件
def read_ini():

    config_read = ConfigParser.RawConfigParser()

    config_read.read('test')

    print config_read.sections()

    print config_read.items('Section_a')

    print config_read.get('Section_a','option_a1')

最后的结果为:
['Section_a', 'Section_c', 'Section_b']

[('option_a2', 'banana_a2'), ('option_a1', 'apple_a1')]

apple_a1
Python 相关文章推荐
Python模块学习 re 正则表达式
May 19 Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
Dec 14 Python
Python操作MySQL数据库的三种方法总结
Jan 30 Python
Django中redis的使用方法(包括安装、配置、启动)
Feb 21 Python
在NumPy中创建空数组/矩阵的方法
Jun 15 Python
python学习--使用QQ邮箱发送邮件代码实例
Apr 16 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
Python3 读取Word文件方式
Feb 13 Python
Pytorch 使用CNN图像分类的实现
Jun 16 Python
matplotlib基础绘图命令之imshow的使用
Aug 13 Python
python如何设置静态变量
Sep 07 Python
教你怎么用Python实现多路径迷宫
Apr 29 Python
python进阶教程之动态类型详解
Aug 30 #Python
python进阶教程之异常处理
Aug 30 #Python
python进阶教程之函数对象(函数也是对象)
Aug 30 #Python
python进阶教程之循环对象
Aug 30 #Python
python进阶教程之循环相关函数range、enumerate、zip
Aug 30 #Python
python进阶教程之函数参数的多种传递方法
Aug 30 #Python
python进阶教程之模块(module)介绍
Aug 30 #Python
You might like
php判断变量类型常用方法
2012/04/24 PHP
PHP实现简易blog的制作
2016/10/24 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
JavaScript中Cookies的相关使用教程
2015/06/04 Javascript
JavaScript数据库TaffyDB用法实例分析
2015/07/27 Javascript
jQuery左侧大图右侧小图焦点图幻灯切换代码分享
2015/08/19 Javascript
详解JavaScript的变量和数据类型
2015/11/27 Javascript
JS简单实现无缝滚动效果实例
2016/08/24 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
Node.JS利用PhantomJs抓取网页入门教程
2017/05/19 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
python笔记(2)
2012/10/24 Python
python通过scapy获取局域网所有主机mac地址示例
2014/05/04 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
Python 闭包的使用方法
2017/09/07 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
html5指南-1.html5全局属性(html5 global attributes)深入理解
2013/01/07 HTML / CSS
幼儿园美术教学反思
2014/01/31 职场文书
规范化管理年活动总结
2014/08/29 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
高质量“欢迎词”
2019/04/03 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
小学四年级作文之最感动的一件事
2019/11/01 职场文书
php修改word的实例方法
2021/11/17 PHP
Nginx利用Logrotate实现日志分割
2022/05/20 Servers