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


Posted in Python onMarch 29, 2018

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

这里参考前面一篇:https://3water.com/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进行稳定可靠的文件操作详解
Dec 31 Python
Python使用遗传算法解决最大流问题
Jan 29 Python
python3.5 tkinter实现页面跳转
Jan 30 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
Django CSRF跨站请求伪造防护过程解析
Jul 31 Python
解决Django中调用keras的模型出现的问题
Aug 07 Python
python matplotlib折线图样式实现过程
Nov 04 Python
Python二次规划和线性规划使用实例
Dec 09 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
Mar 11 Python
Keras使用ImageNet上预训练的模型方式
May 23 Python
python中os.path.join()函数实例用法
May 26 Python
python 开心网和豆瓣日记爬取的小爬虫
May 29 Python
Python读取properties配置文件操作示例
Mar 29 #Python
Python实现读取Properties配置文件的方法
Mar 29 #Python
Java实现的执行python脚本工具类示例【使用jython.jar】
Mar 29 #Python
教你使用python画一朵花送女朋友
Mar 29 #Python
使用python生成目录树
Mar 29 #Python
python实现树形打印目录结构
Mar 29 #Python
Python基础教程之利用期物处理并发
Mar 29 #Python
You might like
php连接Access数据库错误及解决方法
2013/06/20 PHP
linux下编译安装memcached服务
2014/08/03 PHP
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
jQuery实现当前页面标签高亮显示的方法
2015/03/10 Javascript
React Native中TabBarIOS的简单使用方法示例
2017/10/13 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
2018/01/09 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
Vue——解决报错 Computed property "****" was assigned to but it has no setter.
2020/12/19 Vue.js
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
python结合shell查询google关键词排名的实现代码
2016/02/27 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
Python玩转Excel的读写改实例
2019/02/22 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
Python如何实现强制数据类型转换
2019/11/22 Python
python如何实现复制目录到指定目录
2020/02/13 Python
python实现UDP协议下的文件传输
2020/03/20 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
师范生实习个人的自我评价
2013/09/28 职场文书
快递业务员岗位职责
2014/01/06 职场文书
党章学习思想汇报
2014/01/14 职场文书
《月迹》教学反思
2014/02/19 职场文书
yy婚礼主持词
2014/03/14 职场文书
环保项目建议书
2014/08/26 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
房产公证书格式
2015/01/26 职场文书
医德医风个人总结
2015/02/28 职场文书
研讨会通知
2015/04/27 职场文书
python 逐步回归算法
2021/04/06 Python