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实现根据IP地址和子网掩码算出网段的方法
Jul 30 Python
解读Python编程中的命名空间与作用域
Oct 16 Python
python 根据pid杀死相应进程的方法
Jan 16 Python
python:pandas合并csv文件的方法(图书数据集成)
Apr 12 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
Flask框架各种常见装饰器示例
Jul 17 Python
python中tab键是什么意思
Jun 18 Python
Python读写压缩文件的方法
Jul 30 Python
一文详述 Python 中的 property 语法
Sep 01 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 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
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
2019/12/03 PHP
jquery 学习笔记一
2010/04/07 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
Javascript验证方法大全
2015/09/21 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
2016/05/27 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
vue 重塑数组之修改数组指定index的值操作
2020/08/09 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
Python实现端口复用实例代码
2014/07/03 Python
python发送HTTP请求的方法小结
2015/07/08 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
Python终端输出彩色字符方法详解
2020/02/11 Python
解决python 执行shell命令无法获取返回值的问题
2020/12/05 Python
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
大一期末自我鉴定
2013/12/13 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
省文明单位申报材料
2014/05/08 职场文书
篮球比赛口号
2014/06/10 职场文书
工商管理专业毕业生自我鉴定2014
2014/10/04 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
乡镇一岗双责责任书
2015/01/29 职场文书