#!/usr/bin/python # -*- coding: utf-8 -*- import ConfigParser from log import PLOG import os def getdefaultfilename(): pass def openconfiger(filename): return configer(filename) class configer: def __init__(self,fullfilepath): self._filepath=fullfilepath if not os.path.isdir(os.path.dirname(fullfilepath)): os.makedirs(os.path.dirname(fullfilepath)) self._conf=ConfigParser.ConfigParser() if os.path.isfile(fullfilepath): try: self._conf.readfp(open(fullfilepath,"r")) except Exception,e: PLOG.error("配置文件'%s'打开失败,err=%s"%(self._filepath,e)) def save(self): try: self._conf.write(open(self._filepath,"w")) except Exception,e: PLOG.error("配置文件'%s'保存失败,err=%s"%(self._filepath,e)) def changeConfValue(self,section,option,value): if self._conf.has_section(section): self._conf.set(section,option,value) else: self._conf.add_section(section) self._conf.set(section,option,value) def _readvalue(self,fn,section,option,default): result=default if self._conf.has_section(section): if self._conf.has_option(section,option): result=fn(section,option) PLOG.debug("Option[%s][%s]=%s"%(section,option,str(result))) else: self._conf.set(section,option,str(default)) result=default else: self._conf.add_section(section) self._conf.set(section,option,str(default)) result=default return result def getstr(self,section,option,default=""): return self._readvalue(self._conf.get, section, option, default) def getint(self,section,option,default=0): return self._readvalue(self._conf.getint, section, option, default) def getfloat(self,section,option,default=0.0): return self._readvalue(self._conf.getfloat, section, option, default) def getboolean(self,section,option,default=False): return self._readvalue(self._conf.getboolean, section, option, default)