python读取properties文件

2019-08-09  本文已影响0人  kacen

环境: python2.7
操作系统: linux
首先咋们要准备一个properties脚本,这个到时候是需要引用的.但是提醒大家版本一定要和我的一致,要么很难受的,除非你写了一个封装的脚本可以通用.

1.先新建一个PropertiesUtil文件,里面放入你要使用的类,记住你的类名待会要用

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

2.新建一个新的.py文件,开始获取你的信息,当然要有个.properties的文件,具体内容如下

properties文件内容

DB.username=123456
DB.password=123321

.py文件

#这里的parent_dir是你当前的路经,使用sys.path将该路径下导入临时的.py文件加入到扫描范围内,这样就可以引入自己的其他类
sys.path.append("parent_dir")
#这里就是导入,from ***(你的文件名,不带后缀) import ***(这里是你的类名)
from PropertiesUtil import Properties
#read properties这里路径按照实际路径来
currentProperties = Properties(parent_dir+"/config/test.properties").getProperties()
currentport = currentProperties['server']['port']
#获取全部的properties文件信息
print currentProperties
#获取该字段下的所有信息
print currentProperties['DB']
#获取具体的字段信息
print currentProperties['DB']['username']

以上代码是通用的,大家可以直接放入linux的py下跑起,记得改parent_dir和properties文件路径就好了
本文章结束,是不是又学到了什么,一点一点来,总会有收获!

上一篇下一篇

猜你喜欢

热点阅读