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基础教程之字典操作详解
Mar 25 Python
python统计文本字符串里单词出现频率的方法
May 26 Python
Python的GUI框架PySide的安装配置教程
Feb 16 Python
python装饰器与递归算法详解
Feb 18 Python
利用Python自动监控网站并发送邮件告警的方法
Aug 24 Python
python的dataframe转换为多维矩阵的方法
Apr 11 Python
CentOS7安装Python3的教程详解
Apr 10 Python
Python为何不能用可变对象作为默认参数的值
Jul 01 Python
详解Python二维数组与三维数组切片的方法
Jul 18 Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
Jul 27 Python
详解python对象之间的交互
Sep 29 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中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
基于jQuery的获取标签名的代码
2012/07/16 Javascript
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
javascript实现表单提交后,提交按钮不可用的方法
2015/04/18 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
2016/04/11 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
通过Py2exe将自己的python程序打包成.exe/.app的方法
2018/05/26 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
Python将多个list合并为1个list的方法
2018/06/27 Python
浅析python的优势和不足之处
2018/11/20 Python
Django数据结果集序列化并展示实现过程
2020/04/22 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
html5 touch事件实现页面上下滑动效果【附代码】
2016/03/10 HTML / CSS
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
电大物流学生的自我评价
2013/10/25 职场文书
母校寄语大全
2014/04/10 职场文书
房产转让协议书
2014/04/11 职场文书
客户经理竞聘演讲稿
2014/05/15 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2015年计划生育责任书
2015/05/08 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书