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中的继承和多态的概念
Apr 27 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
Jun 02 Python
python实现抽奖小程序
Apr 15 Python
django 自定义filter 判断if var in list的例子
Aug 20 Python
python Dijkstra算法实现最短路径问题的方法
Sep 19 Python
Python Django2.0集成Celery4.1教程
Nov 19 Python
Python表达式的优先级详解
Feb 18 Python
python用pip install时安装失败的一系列问题及解决方法
Feb 24 Python
pyqt5 QlistView列表显示的实现示例
Mar 24 Python
Python如何输出整数
Jun 07 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
详解Python中的文件操作
Jan 14 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
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
php a simple smtp class
2007/11/26 PHP
比较discuz和ecshop的截取字符串函数php版
2012/09/03 PHP
php排序算法实例分析
2016/10/17 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
js option删除代码集合
2008/11/12 Javascript
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
javascript实现五星评价代码(源码下载)
2015/08/11 Javascript
js实现仿qq消息的弹出窗效果
2016/01/06 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
2016/04/01 Javascript
原生JS实现图片翻书效果
2017/02/16 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
es6 symbol的实现方法示例
2019/04/02 Javascript
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
python opencv实现运动检测
2018/07/10 Python
Python+OpenCV图片局部区域像素值处理改进版详解
2019/01/23 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
8种常用的Python工具
2020/08/05 Python
详解python程序中的多任务
2020/09/16 Python
施华洛世奇水晶荷兰官方网站:SWAROVSKI荷兰
2017/05/12 全球购物
John Hardy官方网站:手工设计首饰的奢侈品牌
2017/07/05 全球购物
洗煤厂厂长岗位职责
2014/01/03 职场文书
合作合同协议书范本
2015/01/27 职场文书
高中运动会广播稿
2015/08/19 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏
MySQL 数据库范式化设计理论
2022/04/22 MySQL