【python】python读取Properties配置文件
2017-06-12 本文已影响306人
当时不是寻常
本文参考博客:http://blog.csdn.net/bobzhangshaobo/article/details/47617107
在我们用java进行开发的时候会经常有读取xxx.properties配置文件的需求,那么在python里面我们是否也有这样的功能呢,那是当然的,不用多说,先看我的ReadProperties.py文件:
class Properties(object):
def __init__(self, fileName):
self.fileName = fileName
self.properties = {}
def __getDict(self,strName,dictName,value):
if(strName.find('.')>0):
k = strName.split('.')[0]
dictName.setdefault(k,{})
return self.__getDict(strName[len(k)+1:],dictName[k],value)
else:
dictName[strName] = value
return
def getProperties(self):
try:
pro_file = open(self.fileName, 'Ur')
for line in pro_file.readlines():
line = line.strip().replace('\n', '')
if line.find("#")!=-1:
line=line[0:line.find('#')]
if line.find('=') > 0:
strs = line.split('=')
strs[1]= line[len(strs[0])+1:]
self.__getDict(strs[0].strip(),self.properties,strs[1].strip())
except Exception, e:
raise e
else:
pro_file.close()
return self.properties
下面我们再看一下具体的用法,首先在项目中增加如下模块引入
#引入解析Properties的模块
from ReadProperties import Propertiespy
接着我们再创建properties配置文件,我的测试文件如下所示:
www.alibaba.com=tianmao
chat=weixin,qq
shopping=jingdong
使用方法如下:
pro=Properties('company.properties').getProperties()
print pro
print pro['www']
print pro['www']['alibaba']
print pro['chat']
输出结果如下:
{'www': {'alibaba': {'com': 'tianmao'}}, 'shopping': 'jingdong', 'chat': 'weixin,qq'}
{'alibaba': {'com': 'tianmao'}}
{'com': 'tianmao'}
weixin,qq
如果文章当中有任何不正确的地方,还请广大读者纠正,非常感谢!