Python读取properties配置文件操作示例


Posted in Python onMarch 29, 2018

本文实例讲述了Python读取properties配置文件操作。分享给大家供大家参考,具体如下:

工作需要将Java项目的逻辑改为python执行,Java的很多配置文件都是.properties的,文件内容的格式是“键.键.键。。。=值”的格式例如A.B.C=value1D.F=value2等。并且“#”用来注视。python没有专门处理properties格式的包,只有处理标准的ini格式的包。所以需要自己写一个python程序来处理。不说了上程序。

这里参考前面一篇:https://3water.com/article/137390.htm

主要在前文的基础上,增加key.key.key=value的形式的支持

Util.py文件:

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

filename.properties文件:

a.b.d=v1
a.c=v2
d.e=v3
f=v4

测试文件text.py:

from Util import Properties
dictProperties=Properties("filename.properties").getProperties()
print dictProperties

输出:

{'a': {'c': 'v2', 'b': {'d': 'v1'}}, 'd': {'e': 'v3'}, 'f': 'v4'}

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
wxpython 学习笔记 第一天
Feb 09 Python
python模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
Python中几种操作字符串的方法的介绍
Apr 09 Python
以Flask为例讲解Python的框架的使用方法
Apr 29 Python
Python实现图像几何变换
Jul 06 Python
python字符串str和字节数组相互转化方法
Mar 18 Python
Python可变参数用法实例分析
Apr 02 Python
Python模拟用户登录验证
Sep 11 Python
Python提取PDF内容的方法(文本、图像、线条等)
Sep 25 Python
django自定义模板标签过程解析
Dec 14 Python
opencv 图像滤波(均值,方框,高斯,中值)
Jul 08 Python
方法汇总:Python 安装第三方库常用
Apr 26 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
Windows下安装Django框架的方法简明教程
Mar 28 #Python
You might like
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
smarty高级特性之过滤器的使用方法
2015/12/25 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
jquery写个checkbox——类似邮箱全选功能
2013/03/19 Javascript
Jquery chosen动态设置值实例介绍
2013/08/08 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
原生JS获取元素的位置与尺寸实现方法
2017/10/18 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
[54:41]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VGJ.T VS paiN
2018/03/31 DOTA
Python中logging模块的用法实例
2014/09/29 Python
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
Python下的twisted框架入门指引
2015/04/15 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
亚马逊巴西站:Amazon.com.br
2019/09/22 全球购物
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
职业技术学校毕业生推荐信
2013/12/03 职场文书
竞聘演讲稿范文
2014/01/12 职场文书
农民工创业典型事迹
2014/01/25 职场文书
数学系毕业生求职信
2014/05/29 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
教育实践活动对照检查材料
2014/09/23 职场文书
2015中秋祝酒词
2015/08/12 职场文书
vue选项卡切换的实现案例
2022/04/11 Vue.js