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抓取京东价格分析京东商品价格走势
Jan 09 Python
python基础教程之Hello World!
Aug 29 Python
给Python初学者的一些编程技巧
Apr 03 Python
在Python中用keys()方法返回字典键的教程
May 21 Python
Python 中开发pattern的string模板(template) 实例详解
Apr 01 Python
python绘制多个曲线的折线图
Mar 23 Python
Python中extend和append的区别讲解
Jan 24 Python
使用IPython或Spyder将省略号表示的内容完整输出
Apr 20 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
May 17 Python
Numpy数组的广播机制的实现
Nov 03 Python
python实现计算图形面积
Feb 22 Python
Python函数中的不定长参数相关知识总结
Jun 24 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制作静态网站的模板框架
2006/10/09 PHP
实用函数7
2007/11/08 PHP
php join函数应用
2011/05/04 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
读jQuery之七 判断点击了鼠标哪个键的代码
2011/06/21 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
json数据与字符串的相互转化示例
2013/09/18 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
javascript实现小型区块链功能
2019/04/03 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
[51:17]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
对python中Matplotlib的坐标轴的坐标区间的设定实例讲解
2018/05/25 Python
python实现抖音视频批量下载
2018/06/20 Python
django_orm查询性能优化方法
2018/08/20 Python
python爬虫 模拟登录人人网过程解析
2019/07/31 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
基于python实现学生信息管理系统
2019/11/22 Python
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
索尼巴西商店:Sony巴西
2019/06/21 全球购物
外语系毕业生自荐信范文
2013/12/16 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
2014年小学国庆节活动方案
2014/09/16 职场文书
银行求职自荐信范文
2015/03/04 职场文书
个人廉洁自律总结
2015/03/06 职场文书
实习单位推荐信
2015/03/27 职场文书
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS