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

yipeiwu_com7年前Python基础

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

这里参考前面一篇:/post/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相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

相关文章

python代理工具mitmproxy使用指南

python代理工具mitmproxy使用指南

前言 mitmproxy 是 man-in-the-middle proxy 的简称,译为中间人代理工具,可以用来拦截、修改、保存 HTTP/HTTPS 请求。以命令行终端形式呈现,操作...

Python 实现还原已撤回的微信消息

Python 实现还原已撤回的微信消息

导包效果展示 以下截图显示的撤回消息类型依次是文字消息、微信自带表情、图片、语音、定位地图、名片、公众号文章、音乐、视频。有群里撤回的,也有个人号撤回的。 图文来源:http://kk...

Python 逐行分割大txt文件的方法

代码如下所示: # -*- coding: <encoding name> -*- import io LIMIT = 150000 file_count = 0 url...

python中pytest收集用例规则与运行指定用例详解

前言 上篇文章相信大家已经了解了pytest在cmd下结合各种命令行参数如何运行测试用例,并输出我们想要看到的信息。那么今天会讲解一下pytest是如何收集我们写好的用例?我们又有哪些...

Python Tkinter 简单登录界面的实现

Python Tkinter 简单登录界面的实现

如下所示: from tkinter import * class Reg (Frame): def __init__(self,master): frame = F...