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中 ? : 三元表达式的使用介绍
Oct 09 Python
python 爬取微信文章
Jan 30 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
May 24 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
Python批处理更改文件名os.rename的方法
Oct 26 Python
Python匿名函数及应用示例
Apr 09 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
Python编写打字训练小程序
Sep 26 Python
Python多线程thread及模块使用实例
Apr 28 Python
Keras实现DenseNet结构操作
Jul 06 Python
Python利用Pillow(PIL)库实现验证码图片的全过程
Oct 04 Python
python超详细实现完整学生成绩管理系统
Mar 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
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
typecho插件编写教程(三):保存配置
2015/05/28 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
PHP+iframe模拟Ajax上传文件功能示例
2019/07/02 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
open 动态修改img的onclick事件示例代码
2013/11/13 Javascript
js中传递特殊字符(+,&)的方法
2014/01/16 Javascript
理解javascript中的回调函数(callback)
2014/09/02 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
jQuery实现给input绑定回车事件的方法
2017/02/09 Javascript
微信小程序之多文件下载的简单封装示例
2018/01/29 Javascript
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
jquery ui 实现 tab标签功能示例【测试可用】
2019/07/25 jQuery
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
怎样使用Python脚本日志功能
2016/08/14 Python
Bottle框架中的装饰器类和描述符应用详解
2017/10/28 Python
python 去除二维数组/二维列表中的重复行方法
2019/01/23 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
墨西哥购物网站:Elektra
2020/01/21 全球购物
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
一组SQL面试题
2016/02/15 面试题
银行优秀员工事迹
2014/02/06 职场文书
周年庆促销方案
2014/03/15 职场文书
社区精神文明建设汇报材料
2014/08/17 职场文书
十八大宣传标语
2014/10/09 职场文书
就业意向书范本
2015/05/11 职场文书
职业生涯规划书之大学四年
2019/08/07 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS