转载:https://my.oschina.net/u/3041656/blog/793467
配置文件作为一种可读性很好的格式,非常适用于存储程序中的配置数据。在每个配置文件中,配置数据会被分组(比如"config"和”cmd“).每个分组在其中指定对应的各个变量值,,如下:
#定义congig分组
[congig]
platformName=Android
appPackage=com.remwe
appActivity=com.remove.SplashActivity
#定义cmd分组
[cmd]
viewPhone=adb devices
startServer=adb start-server
stopServer=adb kill-server
#定义log分组
[log]
log_error=true
基本的读取操作:
1)-read(filename) 直接读取文件内容
2)sections() 得到该section,并以列表的形式返回
3)options(section) 得到该section的所有option
4)-items(section) 得到该section的所有键值对
5)-get(section,option) 得到section中option的值,返回为string类型
6)-getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat()函数
对配置文件进行操作前。我们需要进行以下两个操作:
1、实例化ConfigParser对象
#实例化configParser对象
cf=config.ConfigParser()
2、读取配置文件
#读取config.ini文件
cf.read(config.ini)
然后进行配置文件的读取操作
以get为例,实例代码如下:
#定义方法,获取config分组下指定name的值
def getConfigVValue(self,name):
value=self.cf.get("config",name)
return(value)
#定义方法,获取cmd分组下指定name的值
def getCmdValue(self,name):
value=self.cf.get("cmd",name)
return(value)
通过get(section,option)方法,可以获取指定分组下指定名称的值,其他方法类似,可参照着尝试
基本写入操作:
1)-write(fp)将config对象写入至某个.ini格式的文件
2)-add_section(section)添加一个新的section
3)-set(section,option,value) 对section中的option进行配置,需要调用write将内容写入配置文件
4)-remove_section(section)删除某个section
5)-remove_option(section,option) 删除某个section下的option
以set(section,option,value)为例,示例代码:
#定义方法,修改config分组下指定name的值value
def setConfigValue(self,name,value):
cfg=self.set("config",name,value)
fp=open(r'config.ini','w')
cfg.write(fp)
配置文件中的名字是不区分大小写的,如下两个是等价的:
#不区分大小写,以下两个鞥加,都获取appActivity的值
self.cf.get("config",”appActivity“)
self.cf.get("config","APPACTIVITY")
在解析时,getboolean()方法查找任何可行的值,例如以下几个都是等价的:
#以下却不知都是等价的为ture
[log]
log_error=ture
log_error=TURE
log_error=1
log_error=yes