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基础之函数用法实例详解
Sep 10 Python
python实现模拟按键,自动翻页看u17漫画
Mar 17 Python
Python实现带百分比的进度条
Jun 28 Python
Python 中迭代器与生成器实例详解
Mar 29 Python
Python贪吃蛇游戏编写代码
Oct 26 Python
使用Python实现博客上进行自动翻页
Aug 23 Python
Python输出各行命令详解
Feb 01 Python
python脚本实现验证码识别
Jun 07 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 Python
Pytorch之finetune使用详解
Jan 18 Python
python 将视频 通过视频帧转换成时间实例
Apr 23 Python
Python 程序员必须掌握的日志记录
Aug 17 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
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
jquery提示 "object expected"的解决方法
2009/12/13 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
2014/06/20 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
2014/12/15 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
常用的javascript设计模式
2017/01/11 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
JS字符串补全方法padStart()和padEnd()
2020/05/27 Javascript
vue 组件简介
2020/07/31 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛 5 24 iG VS DK
2014/05/26 DOTA
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
初步探究Python程序的执行原理
2015/04/11 Python
python+pillow绘制矩阵盖尔圆简单实例
2018/01/16 Python
python logging模块的使用总结
2019/07/09 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
Python安装whl文件过程图解
2020/02/18 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
Pycharm调试程序技巧小结
2020/08/08 Python
毕业自我评价范文
2013/11/17 职场文书
出纳员的岗位职责
2014/02/22 职场文书
黑白记忆观后感
2015/06/18 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书