Python中使用ConfigParser解析ini配置文件实例
作者:junjie 发布时间:2021-06-18 01:41:44
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
猜你喜欢
- 用Dreamweaver制作网页时,如果插入的图片、GIF动画、声音、视频或链接的网页是用中文命名的,在用IE浏览器浏览时可能显示不出来。以
- 高动态范围成像一、引言如今,大多数数字图像和成像设备每通道使用 8 位整数表示灰度,因此将设备的动态范围限制在两个数量级(实际上是 256
- 前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理基本开发环境 Python
- 使用select @@identity 得到刚插入数据的ID1.适用于所有 ADO 版本<%Dim loConn, 
- 个人总结了在开发css框架中的一点经验,献丑了。希望大家的讨论能使我们共同进步。:)1、css框架中国的互联网行业已经发展了10年,浏览器也
- 【目标需求】查看某一个字符串是否为中文字符串【解决办法】def check_contain_chinese(check_str): for
- Laplace分布定义:下面先给出Laplace分布实现代码:import matplotlib.pyplot as pltimport n
- 本文介绍了数据库索引,及其优、缺点。针对MySQL索引的特点、应用进行了详细的描述。分析了如何避免MySQL无法使用,如何使用EXPLAIN
- 联合结果集 新建临时工数据表 代码如下:CREATE TABLE T_TempEmployee (FIdCardNumber VARCHAR
- ---- 一、 引言: ---- 回滚段是数据库的一部分,它记录数据库变更的信息。使用这些信息实现数据库的读一致性及其恢复。若回滚段出现故障
- MYSQL在一个字段值前面加字符窜,如下:member 表名card 字段名update member SET card = '00
- 本文实例讲述了Golang算法之田忌赛马问题实现方法。分享给大家供大家参考,具体如下:【田忌赛马问题】输入:输入有多组测试数据。 每组测试数
- Python 格式化输出字符串(输出字符串+数字的几种方法)1. 介绍字符串格式化输出是python非常重要的基础语法。格式化输出:内容按照
- 在网站中经常会生成表格,CSV和Excel都是常用的报表格式,CSV相对来说比较简单,如果大家有疑问我会相继发布一些CSV的实例,这里主要介
- 一、Python pass语句在实际开发中,有时候我们会先搭建起程序的整体逻辑结构,但是暂时不去实现某些细节,而是在这些地方加一些注释,方面
- 本文实例为大家分享了Python3 Tkinkter + SQLite 实现登录和注册界面,供大家参考,具体内容如下Ubuntu14 + P
- 背景最近在测试一款软件的关闭第三方窗口的功能,感觉实现应该挺简单的。所以就尝试了。由于说它的实现是靠c++实现的,本人对c++实在不在行,但
- 这个符合设计标准的三 级向上弹出菜单,纯css代码控制,没有使用javascript脚本,绿色环保,呵呵。兼容性应该更好。截图:<!D
- 我们都知道Django rest framework这个库,默认只支持批量查看,不支持批量更新(局部或整体)和批量删除。下面我们来讨论这个问
- 一、Python中global与nonlocal 声明如下代码a = 10 def foo(): a = 100执行foo() 结果 a