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实现一个简单的能够上传下载的HTTP服务器
May 05 Python
python保存字符串到文件的方法
Jul 01 Python
python获取指定时间差的时间实例详解
Apr 11 Python
对python pandas 画移动平均线的方法详解
Nov 28 Python
Python数据集切分实例
Dec 08 Python
Python基于百度云文字识别API
Dec 13 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
Sep 18 Python
Python线程threading模块用法详解
Feb 26 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
Python 如何测试文件是否存在
Jul 31 Python
Django搭建项目实战与避坑细节详解
Dec 06 Python
Python中的协程(Coroutine)操作模块(greenlet、gevent)
May 30 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
CodeIgniter删除和设置Cookie的方法
2015/04/07 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
网页广告中JS代码的信息监听示例
2014/04/02 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
jquery制作图片时钟特效
2020/03/30 Javascript
jQuery Validate表单验证入门学习
2015/12/18 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
Bootstrap轮播插件使用代码
2016/10/11 Javascript
VUE使用vuex解决模块间传值问题的方法
2017/06/01 Javascript
echarts实现词云自定义形状的示例代码
2019/02/20 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
2020/08/03 Javascript
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
Python算法之求n个节点不同二叉树个数
2017/10/27 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
教师个人的自我评价分享
2014/01/02 职场文书
职业生涯规划设计步骤
2014/01/12 职场文书
学生喝酒检讨书
2014/02/06 职场文书
干部选拔任用方案
2014/05/26 职场文书
授权收款委托书范本
2014/10/10 职场文书
三严三实心得体会范文
2014/10/13 职场文书
心灵点滴观后感
2015/06/02 职场文书
新学期感想
2015/08/10 职场文书
Python字典的基础操作
2021/11/01 Python