永发信息网

没有section的ini文件可以用ConfigParser解析吗

答案:2  悬赏:80  手机版
解决时间 2021-02-01 12:04
没有section的ini文件可以用ConfigParser解析吗
最佳答案
这篇文章主要介绍了Python中使用ConfigParser解析ini配置文件实例,本文给出了创建和读取ini文件的例子,需要的朋友可以参考下
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
全部回答
;显示设置 [display] ;驱动类型 drivertype=1 ;宽度 width=800 ;高度 height=600 ;色彩位数 colorbits=32 ;深度位数 depthbits=16 ;是否全屏 fullscreen=1 ;同步开关 sync=0 ;杂项 [misc] xmusic=0 xsnd=0 ;动态模糊开关 motionblur=1 scursor=1 ;其他的不知道,备置文件要因为不能的程序,即使相同的名称也可能功能不同 ;通常0为关,1为开
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
哪里可以买到里脊肉啊等油炸小吃的材料?
手机有没有3d绘图软件?可以作出一栋房子的设
下列主要含五环三萜类成分的中药是A.人参B.牛
沦昧的意思是什么啊?知道的请说下!
股票里的dds是什么意思
中盛国际停车场(入口)(海滨二路911号附近中盛
王勃的《滕王阁序》中「落霞与孤鹜齐飞,秋水
海丰县,海城镇的顺丰快递在哪里?怎么去。?
创维液晶电视为什么只用了两年还不到的时间就
永丰园停车场(临沂北路与淄博路交叉口西北200
水泥粘在门上干了如何徐掉
龙游浅水遭蛇戏是什么意思
【伯努利方程实验的思考题为什么急变流断面不
锅屋的意思是什么啊?知道的请说下!
神先造死还是先造生?
推荐资讯
工装地毯价格,广告地毯价格
办公楼按图施工已竣工,现须要做二次内部装修
如何退出小米账号
上声的意思是什么啊?知道的请说下!
请问您是如何解决金蝶k3查询凭证提示定义的应
E人E本A2的手写笔是哪种型号?
12墙砌筑方法文字详细解说
为什么网上银行支付直接跳到输入支付宝密码了
母公司编制合并资产负债表时,应将归属于少数
竹叶石斛和玉米须一起用行吗
红眼带野猪6一套好还是散搭天域好
刀勅的意思是什么啊?知道的请说下!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?