Python

Pyhton config文件解析

2017-12-26  本文已影响6人  步履不停的Suunny

1、配置文件的格式
一般来讲,配置文件的格式是这样的:

[SectionA]   # 方括号里叫做一个section
a = aa       # 这里的每一行,等号左侧是一个option,右侧是option的value
b = bb
c = cc

[SectionB]
optionint = 1
optionfloat = 1.1
optionstring = string
注:配置文件是没有注释的,不要乱写,否则读的时候会出错。xml和json也一样 。 需确认!

2、python读取配置文件,使用方法模块ConfigParse

with open(filename, 'r') as fr:
     cfg = ConfigParser.ConfigParser()
     cfg.readfp(fr)

这就读好了。下面的工作就是解析cfg。

# 读取所有sections:
secs = cfg.sections()            # ['SectionA', 'SectionB']
结果得到section的列表。

# 读取某一个section里面的所有options
ops0 = cfg.options(secs[0])      # ['a', 'b', 'c']
结果得到所有options的列表。

获得option和value的键值对, ——直接使用items就好了:
ops1 = cfg.items(secs[1])

print ops1  #获得的是一个列表。 
[('optionint', '1'), ('optionfloat', '1.1'), ('optionstring', 'string')]
希望把它当做字典来用的话,需要dict(ops1)

如果只想获得某一个option的值怎么办呢?可以用一系列get的方法:
print cfg.getint(secs[1], 'optionint')      # 1
print cfg.getfloat(secs[1], 'optionfloat')  # 1.1
print cfg.get(secs[1], 'optionstring')      # string

以上就是ConfigPhaser模块的简单用法。然而这个模块并不只是能简单的读取配置文件,还可以动态的添加内容,用法如下:

cfg.add_section('SectionC') 
cfg.set('SectionC', 'ex', 'example')

或者删除配置:

cfg.remove_option('SectionC', 'ex')
cfg.remove_section('SectionC')

然后

with open(filename, 'w') as fw:
     cfg.write(fw)

这样就把配置写回到配置文件里去了

上一篇下一篇

猜你喜欢

热点阅读