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的身份证号码自动生成程序
Aug 15 Python
python中list循环语句用法实例
Nov 10 Python
Linux下用Python脚本监控目录变化代码分享
May 21 Python
Python数据库的连接实现方法与注意事项
Feb 27 Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 Python
详解Python中where()函数的用法
Mar 27 Python
python 显示数组全部元素的方法
Apr 19 Python
Python Requests模拟登录实现图书馆座位自动预约
Apr 27 Python
Python利用requests模块下载图片实例代码
Aug 12 Python
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
Aug 15 Python
python 爬取古诗文存入mysql数据库的方法
Jan 08 Python
python合并多个excel文件的示例
Sep 23 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
织梦模板标记简介
2007/03/11 PHP
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
PHP重定向的3种方式
2013/03/07 PHP
smarty内部日期函数html_select_date()用法实例分析
2015/07/08 PHP
php微信开发之百度天气预报
2016/11/18 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
提示$ is not defined错误分析及解决
2013/04/09 Javascript
javascript之typeof、instanceof操作符使用探讨
2013/05/19 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
2015/09/16 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
对angularJs中2种自定义服务的实例讲解
2018/09/30 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
vue使用element-ui实现表单验证
2020/12/13 Vue.js
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
Python使用字典实现的简单记事本功能示例
2019/08/15 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
python库matplotlib绘制坐标图
2019/10/18 Python
详解Python list和numpy array的存储和读取方法
2019/11/06 Python
Python request操作步骤及代码实例
2020/04/13 Python
Nayomi官网:沙特阿拉伯王国睡衣和内衣品牌
2020/12/19 全球购物
店长岗位的工作内容
2013/11/12 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
教你用eclipse连接mysql数据库
2021/04/22 MySQL
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers