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处理字符串之isspace()方法的使用
May 19 Python
Python实现Logger打印功能的方法详解
Sep 01 Python
Python实现进程同步和通信的方法
Jan 02 Python
python去掉空白行的多种实现代码
Mar 19 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
python中字符串内置函数的用法总结
Sep 13 Python
python实现BP神经网络回归预测模型
Aug 09 Python
python使用梯度下降算法实现一个多线性回归
Mar 24 Python
Python调用接口合并Excel表代码实例
Mar 31 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
利用Python实时获取steam特惠游戏数据
Jun 25 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/07/17 PHP
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
jQuery移动端图片上传组件
2016/06/12 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
angularjs下ng-repeat点击元素改变样式的实现方法
2018/09/12 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
Python中字符编码简介、方法及使用建议
2015/01/08 Python
Python中的进程分支fork和exec详解
2015/04/11 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
Python实现串口通信(pyserial)过程解析
2019/09/25 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
Python 列表的清空方式
2020/01/13 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
如何用Python徒手写线性回归
2021/01/25 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
职业规划书如何设计?
2014/01/09 职场文书
实用的简历自我评价
2014/03/06 职场文书
学生上课看漫画的检讨书
2014/09/26 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书
2019思想汇报范文
2019/05/21 职场文书