python

超轻量级php框架startmvc

Python实现加载及解析properties配置文件的方法

更新时间:2020-05-26 09:06:01 作者:startmvc
本文实例讲述了Python实现加载及解析properties配置文件的方法。分享给大家供大家参考,具

本文实例讲述了Python实现加载及解析properties配置文件的方法。分享给大家供大家参考,具体如下:

这里参考前面一篇://www.jb51.net/article/137393.htm

我们都是在java里面遇到要解析properties文件,在python中基本没有遇到这中情况,今天用python跑深度学习的时候,发现有些参数可以放在一个global.properties全局文件中,这样使用的时候更加方便。原理都是加载文件,然后用line方法进行解析判断”=”,自己从网上找到一个工具类,记录一下。

工具类 PropertiesUtiil.py


# -*- coding:utf-8 -*-
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文件了。新建一个文件

global.properties 文件


a.name.last=jie
b.name.first=shi
#b.name=shijie

测试 test.py


from PropertiesUtil import Properties
dictProperties=Properties("global.properties").getProperties()
print dictProperties

控制台打印:

/usr/bin/python2.7 /home/tengxing/rude-carnie/test.py {'a': {'name': {'last': 'jie'}}, 'b': {'name': {'first': 'shi'}}} Process finished with exit code 0

我感觉还是挺方便的,就对做深度学习来说吧,把模型的的位置,训练数据放在一个global.properties文件中,方便管理。

Python 加载 解析 properties 配置文件