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装饰器在Django框架下去除冗余代码的教程
Apr 16 Python
Python递归遍历列表及输出的实现方法
May 19 Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 Python
python2.7读取文件夹下所有文件名称及内容的方法
Feb 24 Python
python之django母板页面的使用
Jul 03 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
Mar 06 Python
Django中从mysql数据库中获取数据传到echarts方式
Apr 07 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
Jun 03 Python
python3实现Dijkstra算法最短路径的实现
May 12 Python
Django模型层实现多表关系创建和多表操作
Jul 21 Python
详解Python+OpenCV进行基础的图像操作
Feb 15 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
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
迁移PHP版本到PHP7
2015/02/06 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
Jquery常用的方法汇总
2015/09/01 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
AngularJS ng-bind-html 指令详解及实例代码
2016/07/30 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
vue.js移动端app实战1:初始配置详解
2017/07/24 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
详解ES6系列之私有变量的实现
2018/11/21 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
JS实现按比例缩小图片宽高
2020/08/24 Javascript
PyQt5每天必学之进度条效果
2018/04/19 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
python实现控制COM口的示例
2019/07/03 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
外语系毕业生找工作的求职信
2013/11/28 职场文书
奥运会口号
2014/06/13 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
2014年司法局工作总结
2014/12/11 职场文书
后进生评语大全
2015/01/04 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
班级联欢会主持词
2015/07/03 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
小学信息技术教学反思
2016/02/16 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书
Python竟然能剪辑视频
2021/05/25 Python
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers