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 21 Python
win7上python2.7连接mysql数据库的方法
Jan 14 Python
python批量设置多个Excel文件页眉页脚的脚本
Mar 14 Python
django 解决manage.py migrate无效的问题
May 27 Python
python实现pdf转换成word/txt纯文本文件
Jun 07 Python
python或C++读取指定文件夹下的所有图片
Aug 31 Python
pytorch构建多模型实例
Jan 15 Python
python 的numpy库中的mean()函数用法介绍
Mar 03 Python
Django实现celery定时任务过程解析
Apr 21 Python
Tensorflow实现将标签变为one-hot形式
May 22 Python
基于python SMTP实现自动发送邮件教程解析
Jun 02 Python
python 常用的异步框架汇总整理
Jun 18 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实现根据url自动生成缩略图的方法
2014/09/23 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
PHP进程通信基础之信号
2017/02/19 PHP
php基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
js宝典学习笔记(上)
2007/01/10 Javascript
FF IE兼容性的修改小结
2009/09/02 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
代码分析vue中如何配置less
2018/09/28 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
Python下rrdtool模块的基本使用方法
2015/11/13 Python
使用Python的turtle模块画图的方法
2017/11/15 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
Python中的类与类型示例详解
2019/07/10 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
super关键字的用法
2012/04/10 面试题
工商管理专业实习生自我鉴定
2013/09/29 职场文书
应届生会计电算化求职信
2013/10/03 职场文书
最新自我评价范文
2013/11/16 职场文书
大学生职业生涯规划书汇总
2014/03/20 职场文书
学雷锋演讲稿汇总
2014/05/10 职场文书
干部四风问题整改措施思想汇报
2014/10/13 职场文书
2014年护士长工作总结
2014/11/11 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
2015年幼儿园教研活动总结
2015/03/25 职场文书
高端收音机+蓝牙音箱,JBL TUNER FM带收音蓝牙音箱评测
2021/04/24 无线电
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL