>PY提供INI配置文件的操作
关于配置文件,很直观的感觉就是XML文件。对于XML文件的使用大家还是很喜欢的。但有时候只是简单的一个程序,实现一个简单的name:value关系。用XML文件就没这个必要。这种要求很符合MS的INI文件格式。所以这里主要介绍一下对INI文件的操作方式,而且最近写的第一个PY应用程序也是使用了INI
什么是INI 文件
PY所支持的INI文件还是和Windows系统所定义有不同,它不但支持name=value的形式,还支持name:value的形式
>PY对INI配置文件读取提供的类支持
PY的ConfigParser Module中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser
RawCnfigParser是最基础的INI文件读取类
ConfigParser、SafeConfigParser支持对$(value)s变量的支持。
>RawConfigParser类的使用方法
int文件
urlname=http://pumaboyd.cnblogs.com
Test.py文件
from __future__ import with_statement
cfg = ConfigParser.RawConfigParser()
with open("app.ini") as fobj
cfg.readfp( fobj)
print cfg.get("weburl","urlname")
>ConfigParser类的使用方法
Configration类是从RawConfigParser扩展过来的,可以支持$()s变量。
对RawConfigParserd的get(),items()进行了扩展
int文件
val=pumaboyd
[weburl]
name=%(val)s
Test.py文件
from __future__ import with_statement
cfg = ConfigParser.ConfigParser()
with open("app.ini") as fobj
cfg.readfp( fobj)
print cfg.defaults()
print cfg.get("weburl","name")
可以看到cfg.get("weburl","name") 输入的pumaboyd。如果这里采用的是RawConfigParser,你将看到输出的是%(val)s。
这里需要注意的一个地方就是DEFAULT这个默认节点。只能通过cfg.defaults()读取到。cfg.sections()是不包含DEFAULT这个节点的。
>SafeConfigParser类的使用方法
是从ConfigParser继承过来,其实是对RawConfigParser进行了扩展,可以支持$()s变量
int文件
val=pumaboyd
[weburl]
name=abcd
Test.py文件
from __future__ import with_statement
cfg = ConfigParser.SaftConfigParser()
with open("app.ini") as fobj
cfg.readfp( fobj)
cfg.set("weburl","name","&(val)s")
print cfg.get("weburl","name")
你将看到输入结果是pumaboyd。如果采用的RawConfigParser,你就看到输出的是%()s
>如何修改INI文件
RawConfigParser、SafeConfigParser、ConfigParser中的SET、Remove等方法都只是对ConfigParser对象的修改,并没有真正的保存到INI文件中。所以,需要通过Write方法(3个类中都有这个方法),将修改写回INI文件中。
ini文件
name=abcd
Test.py文件
from __future__ import with_statement
cfg = ConfigParser.ConfigParser()
with open("app.ini") as fobj
cfg.readfp( fobj)
cfg.set("weburl","name","pumaboyd")
with open("app.ini","w") as fwobj
cfg.write(fwobj)
--=阅读快乐=--
欢迎访问我的新鱼塘 www.pumaboyd.com