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实现dnspod自动更新dns解析的方法
Feb 14 Python
python实现linux服务器批量修改密码并生成execl
Apr 22 Python
Python实现根据指定端口探测服务器/模块部署的方法
Aug 25 Python
Python处理Excel文件实例代码
Jun 20 Python
windows下python安装pip图文教程
May 25 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
Nov 14 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
Python下应用opencv 实现人脸检测功能
Oct 24 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 Python
Django rest framework如何自定义用户表
Jun 09 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文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
调用jQuery滑出效果时闪烁的解决方法
2014/03/27 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
javascript仿百度输入框提示自动下拉补全
2016/01/07 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
详解Node.js项目APM监控之New Relic
2017/05/12 Javascript
JavaScript 通过Ajax 动态加载CheckBox复选框
2017/08/31 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
详解Vue之计算属性
2020/06/20 Javascript
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
python3安装OCR识别库tesserocr过程图解
2020/04/02 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
2020/10/23 Python
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
英国最大的手表网站:The Watch Hut
2017/03/31 全球购物
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
什么是GWT的Module
2013/01/20 面试题
高中毕业生自我鉴定范文
2013/09/26 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
企业负责人任命书
2014/06/05 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
投标单位介绍信
2015/05/05 职场文书
《青山不老》教学反思
2016/02/22 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL