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项目发布为exe可执行程序过程分享
Oct 23 Python
浅谈django model postgres的json字段编码问题
Jan 05 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
Feb 21 Python
详解用python生成随机数的几种方法
Aug 04 Python
Pytorch抽取网络层的Feature Map(Vgg)实例
Aug 20 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
Python 读取xml数据,cv2裁剪图片实例
Mar 10 Python
keras使用Sequence类调用大规模数据集进行训练的实现
Jun 22 Python
Python如何使用input函数获取输入
Aug 06 Python
python进度条显示-tqmd模块的实现示例
Aug 23 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
Jan 15 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 EOT定界符的使用详解
2008/09/30 PHP
php array_map()数组函数使用说明
2011/07/12 PHP
Chrome Web App开发小结
2014/09/04 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
PHP查询分页的实现代码
2017/06/09 PHP
Javascript 复制数组实现代码
2009/11/26 Javascript
JavaScript在for循环中绑定事件解决事件参数不同的情况
2014/01/20 Javascript
jquery默认校验规则整理
2014/03/24 Javascript
JavaScript常用脚本汇总(一)
2015/03/04 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
jquery基础知识第一讲之认识jquery
2016/03/17 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
js仿淘宝评价评分功能
2017/02/28 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
Vue.set() this.$set()引发的视图更新思考及注意事项
2018/08/30 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
开始着手第一个Django项目
2015/07/15 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
2017/04/24 Python
Django用内置方法实现简单搜索功能的方法
2020/12/18 Python
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
华为python面试题
2016/05/03 面试题
Delphi软件工程师试题
2013/01/29 面试题
成人大专生实习期的自我评价
2013/10/02 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
工程部部长岗位职责
2015/02/12 职场文书
Golang 编译成DLL文件的操作
2021/05/06 Golang