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

 更新时间:2018年03月29日 12:03:00   作者:tengxing007  
这篇文章主要介绍了Python实现加载及解析properties配置文件的方法,结合实例形式分析了Python针对properties配置文件的加载、读取及解析相关操作技巧,需要的朋友可以参考下

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

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

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

相关文章

  • Python绑定方法与非绑定方法详解

    Python绑定方法与非绑定方法详解

    这篇文章主要为大家详细 介绍了Python绑定方法与非绑定方法的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Python调用pytdx的代码示例

    Python调用pytdx的代码示例

    本文主要介绍了Python调用pytdx的代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例

    python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例

    这篇文章主要介绍了python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例,需要的朋友可以参考下
    2020-02-02
  • mac下如何将python2.7改为python3

    mac下如何将python2.7改为python3

    这篇文章主要介绍了mac下如何将python2.7改为python3,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • OpenCV图像变换之傅里叶变换的一些应用

    OpenCV图像变换之傅里叶变换的一些应用

    这篇文章主要给大家介绍了关于OpenCV图像变换之傅里叶变换的相关资料,傅里叶变换可以将一幅图片分解为正弦和余弦两个分量,换而言之,他可以将一幅图像从其空间域(spatial domain)转换为频域(frequency domain),需要的朋友可以参考下
    2021-07-07
  • Python中for后接else的语法使用

    Python中for后接else的语法使用

    这篇文章主要介绍了Python中for后接else的语法使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • web.py在模板中输出美元符号的方法

    web.py在模板中输出美元符号的方法

    这篇文章主要介绍了web.py在模板中输出美元符号的方法,即在web.py的模板中输出$符号的方法,需要的朋友可以参考下
    2014-08-08
  • python next()和iter()函数原理解析

    python next()和iter()函数原理解析

    这篇文章主要介绍了python next()和iter()函数原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 使用Keras中的ImageDataGenerator进行批次读图方式

    使用Keras中的ImageDataGenerator进行批次读图方式

    这篇文章主要介绍了使用Keras中的ImageDataGenerator进行批次读图方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • pycharm远程连接服务器调试tensorflow无法加载问题

    pycharm远程连接服务器调试tensorflow无法加载问题

    最近打算在win系统下使用pycharm开发程序,并远程连接服务器调试程序,其中在import tensorflow时报错,本文就来介绍一下如何解决,感兴趣的可以了解一下
    2021-06-06

最新评论