【python】python读取Properties配置文件

本文参考博客: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

如果文章当中有任何不正确的地方,还请广大读者纠正,非常感谢!

    原文作者:当时不是寻常
    原文地址: https://www.jianshu.com/p/395fe8c4e8af
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞