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异常处理慎用“except:pass”建议
Apr 02 Python
Python设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
Python对数据库操作
Mar 28 Python
Python基础教程之tcp socket编程详解及简单实例
Feb 23 Python
python 读取excel文件生成sql文件实例详解
May 12 Python
Python计时相关操作详解【time,datetime】
May 26 Python
Flask框架WTForm表单用法示例
Jul 20 Python
Python+OpenCV图片局部区域像素值处理详解
Jan 23 Python
pandas read_excel()和to_excel()函数解析
Sep 19 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 Python
python爬虫学习笔记之Beautifulsoup模块用法详解
Apr 09 Python
python引入其他文件夹下的py文件具体方法
May 23 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 八种基本的数据类型小结
2011/06/01 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
简单的自定义php模板引擎
2016/08/26 PHP
PHP基于递归算法解决兔子生兔子问题
2018/05/11 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
Javascript 中介者模式实例
2009/12/16 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
javascript中parentNode,childNodes,children的应用详解
2013/12/17 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
JavaScript中反正弦函数Math.asin()的使用简介
2015/06/14 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
js 创建对象 经典模式全面了解
2016/08/16 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
2017/04/10 jQuery
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
Vue 前端实现登陆拦截及axios 拦截器的使用
2019/07/17 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
小程序实现投票进度条
2019/11/20 Javascript
React实现todolist功能
2020/12/28 Javascript
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
python面向对象法实现图书管理系统
2019/04/19 Python
Python实现图像的垂直投影示例
2020/01/17 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
建筑班组长岗位职责
2014/01/02 职场文书
教师演讲稿范文
2014/01/08 职场文书
棉花姑娘教学反思
2014/02/15 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
基层工作经历证明
2015/06/19 职场文书
pytorch 中autograd.grad()函数的用法说明
2021/05/12 Python
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
Mysql binlog日志文件过大的解决
2021/10/05 MySQL