python处理ini详解_python解析ini、conf、cfg文件

1.使用python自带的ConfigParser模块:

#test.cfg文件内容:

[sec_a]

a_key1 = 20

a_key2 = 10

[sec_b]

b_key1 = 121

b_key2 = b_value2

b_key3 = $r

b_key4 = 127.0.0.1

# -* - coding: UTF-8 -* -

import ConfigParser

#生成config对象

conf = ConfigParser.ConfigParser()

#用config对象读取配置文件

conf.read("test.cfg")

#以列表形式返回所有的section

sections = conf.sections()

print ‘sections:‘, sections         #sections: [‘sec_b‘, ‘sec_a‘]

#得到指定section的所有option

options = conf.options("sec_a")

print ‘options:‘, options           #options: [‘a_key1‘, ‘a_key2‘]

#得到指定section的所有键值对

kvs = conf.items("sec_a")

print ‘sec_a:‘, kvs                 #sec_a: [(‘a_key1‘, ‘20‘), (‘a_key2‘, ‘10‘)]

#指定section,option读取值

str_val = conf.get("sec_a", "a_key1")

int_val = conf.getint("sec_a", "a_key2")

print "value for sec_a‘s a_key1:", str_val   #value for sec_a‘s a_key1: 20

print "value for sec_a‘s a_key2:", int_val   #value for sec_a‘s a_key2: 10

#写配置文件

#更新指定section,option的值

conf.set("sec_b", "b_key3", "new-$r")

#写入指定section增加新option和值

conf.set("sec_b", "b_newkey", "new-value")

#增加新的section

conf.add_section(‘a_new_section‘)

conf.set(‘a_new_section‘, ‘new_key‘, ‘new_value‘)

#写回配置文件

conf.write(open("test.cfg", "w"))

2.ConfigParser的一些问题:

1,不能区分大小写。

2,重新写入的ini文件不能保留原有 INI文件的注释。

3,重新写入的ini文件不能保持原有的顺序。

4,不支持嵌套。

5,不支持格式校验。

尝试下:configobj模块

#读文件

from configobj import ConfigObj

config = ConfigObj(filename)

#

value1 = config[‘keyword1‘]

value2 = config[‘keyword2‘]

#

section1 = config[‘section1‘]

value3 = section1[‘keyword3‘]

value4 = section1[‘keyword4‘]

#

# you could also write

value3 = config[‘section1‘][‘keyword3‘]

value4 = config[‘section1‘][‘keyword4‘]

#写文件如下:

from configobj import ConfigObj

config = ConfigObj()

config.filename = filename

#

config[‘keyword1‘] = value1

config[‘keyword2‘] = value2

#

config[‘section1‘] = {}

config[‘section1‘][‘keyword3‘] = value3

config[‘section1‘][‘keyword4‘] = value4

#

section2 = {

‘keyword5‘: value5,

‘keyword6‘: value6,

‘sub-section‘: {

‘keyword7‘: value7

}

}

config[‘section2‘] = section2

#

config[‘section3‘] = {}

config[‘section3‘][‘keyword 8‘] = [value8, value9, value10]

config[‘section3‘][‘keyword 9‘] = [value11, value12, value13]

#

config.write()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值