python載入properties配置

參考來源:http://blog.csdn.net/bobzhangshaobo/article/details/47617107 我們都是在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文件中,方便管理。