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中Flask框架简单入门实例
Mar 21 Python
Python使用urllib2模块实现断点续传下载的方法
Jun 17 Python
简单的python后台管理程序
Apr 13 Python
利用python求解物理学中的双弹簧质能系统详解
Sep 29 Python
详解python selenium 爬取网易云音乐歌单名
Mar 28 Python
python 实现创建文件夹和创建日志文件的方法
Jul 07 Python
Djang的model创建的字段和参数详解
Jul 27 Python
python2使用bs4爬取腾讯社招过程解析
Aug 14 Python
pycharm解决关闭flask后依旧可以访问服务的问题
Apr 03 Python
Pytorch高阶OP操作where,gather原理
Apr 30 Python
keras K.function获取某层的输出操作
Jun 29 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 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
Laravel实现短信注册的示例代码
2018/05/29 PHP
PHP chop()函数讲解
2019/02/11 PHP
js 获取服务器控件值的代码
2010/03/05 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
javascript实现网页屏蔽Backspace事件,输入框不屏蔽
2015/07/21 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
微信小程序实现图片放大预览功能
2020/10/22 Javascript
JS防抖和节流实例解析
2019/09/24 Javascript
原生js拖拽实现图形伸缩效果
2020/02/10 Javascript
python删除文件示例分享
2014/01/28 Python
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
python从sqlite读取并显示数据的方法
2015/05/08 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
pandas实现选取特定索引的行
2018/04/20 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
Python如何使用字符打印照片
2020/01/03 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
python中HTMLParser模块知识点总结
2021/01/25 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
总经理驾驶员岗位职责
2013/12/04 职场文书
应届毕业生简历自我评价
2014/01/31 职场文书
交通事故协议书
2014/04/15 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
如何获取numpy array前N个最大值
2021/05/14 Python
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP
基于redis+lua进行限流的方法
2022/07/23 Redis
Go语言测试库testify使用学习
2022/07/23 Golang