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 MySQLdb模块连接操作mysql数据库实例
Apr 08 Python
Python实现控制台输入密码的方法
May 29 Python
pycharm安装和首次使用教程
Aug 27 Python
Python中asyncio与aiohttp入门教程
Oct 16 Python
Python之使用adb shell命令启动应用的方法详解
Jan 07 Python
在TensorFlow中屏蔽warning的方式
Feb 04 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
Mar 10 Python
Python如何将字符串转换为日期
Jul 31 Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 Python
Python字典dict常用方法函数实例
Nov 09 Python
python中pivot()函数基础知识点
Jan 03 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内存相关的功能特性详解
2013/06/08 PHP
php5.3 注意事项说明
2013/07/01 PHP
php构造函数实例讲解
2013/11/13 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
js中的this关键字详解
2013/09/25 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
jQuery中empty()方法用法实例
2015/01/16 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
基于jQuery实现的打字机效果
2017/01/16 Javascript
移动端手指放大缩小插件与js源码
2017/05/22 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
微信小程序 授权登录详解(附完整源码)
2019/08/23 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
[51:39]DOTA2-DPC中国联赛 正赛 Magma vs LBZS BO3 第二场 2月7日
2021/03/11 DOTA
在django中使用自定义标签实现分页功能
2017/07/04 Python
Python实现的弹球小游戏示例
2017/08/01 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
简单了解python中对象的取反运算符
2019/07/01 Python
基于python实现坦克大战游戏
2020/10/27 Python
Canvas 文本转粒子效果的实现代码
2019/02/14 HTML / CSS
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
医学生个人求职信范文
2014/02/07 职场文书
机械设计及其自动化求职推荐信
2014/02/17 职场文书
《鲁班和橹板》教学反思
2014/04/27 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
2014年实验室工作总结
2014/12/03 职场文书
优秀校长事迹材料
2014/12/24 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书