一些常用的方法放到了MyUtil类中,为了不造成创建多个MyUtil实例的情况,因此使用了单例模式
main.py
MyUtil(fileName=psettings.ROOT_DIR + os.sep + 'config' + os.sep + 'config.properties')
myutil.py
class MyUtil(object):
'''
单例,提供从配置文件获取信息,获取连接等基础方法
'''
fileName = ''
cp = None
__instance = None
cnxpool = None
def __new__(cls, *args, **kwd):
if MyUtil.__instance is None:
MyUtil.__instance = object.__new__(cls, *args, **kwd)
return MyUtil.__instance
def __init__(self, fileName=None):
if fileName is None:
raise Exception('%s配置文件没有找到' % fileName)
MyUtil.fileName = fileName
MyUtil.cp = ConfigParser()
print '配置文件%s' % MyUtil.fileName
MyUtil.cp.read(fileName)
self.logger = logging.getLogger('myLogger.myutil.MyUtil')
@classmethod
def loadProperty(cls, section, key):
'''
从配置文件中获得key对应的值
@param section: 节点名称
@param key: 参数名
@return: 得到的结果string类型,如果没有取得值返回None
'''
if MyUtil.cp is None:
MyUtil.cp = ConfigParser()
if MyUtil.fileName is None:
raise Exception('%s配置文件没有找到' % MyUtil.fileName)
MyUtil.cp.readfp(codecs.open(MyUtil.fileName, "r", "utf-8-sig"))
s = MyUtil.cp.sections()
try:
if s is not None and section in s:
value = MyUtil.cp.get(section, key)
else:
value = None
except Exception, e:
# print e
value = None
# print value
return value