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 正则表达式操作指南
May 04 Python
python监控进程脚本
Apr 12 Python
Python中的函数式编程:不可变的数据结构
Oct 08 Python
学习python可以干什么
Feb 26 Python
python openpyxl使用方法详解
Jul 18 Python
PyTorch实现更新部分网络,其他不更新
Dec 31 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
Feb 17 Python
Python迭代器Iterable判断方法解析
Mar 16 Python
python numpy矩阵信息说明,shape,size,dtype
May 22 Python
python ETL工具 pyetl
Jun 07 Python
opencv 图像礼帽和图像黑帽的实现
Jul 07 Python
python中round函数保留两位小数的方法
Dec 04 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中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
JS中eval函数的使用示例
2013/07/21 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
深入理解jQuery.data() 的实现方式
2016/11/30 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
Python检测生僻字的实现方法
2016/10/23 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
python实现批量命名照片
2020/06/18 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
JSF如何进行表格处理及取值
2012/08/06 面试题
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
实习教师个人的自我评价
2013/11/08 职场文书
开业庆典邀请函
2014/01/08 职场文书
中等生评语大全
2014/05/04 职场文书
2014预备党员党课学习心得范文
2014/07/08 职场文书
局机关干部群众路线个人对照检查材料思想汇报
2014/10/05 职场文书
2014年团队工作总结
2014/11/24 职场文书
语文教师个人工作总结
2015/02/06 职场文书
毕业论文致谢词
2015/05/14 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python
一文解答什么是MySQL的回表
2022/08/05 MySQL