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 相关文章推荐
跟老齐学Python之传说中的函数编写条规
Oct 11 Python
python实现批量改文件名称的方法
May 25 Python
详解Python的Lambda函数与排序
Oct 25 Python
Python数据分析库pandas基本操作方法
Apr 08 Python
python重试装饰器的简单实现方法
Jan 31 Python
python仿evething的文件搜索器实例代码
May 13 Python
ansible动态Inventory主机清单配置遇到的坑
Jan 19 Python
Python tkinter和exe打包的方法
Feb 05 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
pandas进行数据输入和输出的方法详解
Mar 23 Python
Python 的演示平台支持 WSGI 接口的应用
Apr 20 Python
Python FuzzyWuzzy实现模糊匹配
Apr 28 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
解决中英文字符串长度问题函数
2007/01/16 PHP
php递归实现无限分类的方法
2015/07/28 PHP
微信公众平台DEMO(PHP)
2016/05/04 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
高效的表格行背景隔行变色及选定高亮的JS代码
2010/12/04 Javascript
前台js改变Session的值(用ajax实现)
2012/12/28 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
js实现根据身份证号自动生成出生日期
2015/12/15 Javascript
jQuery ajax提交Form表单实例(附demo源码)
2016/04/06 Javascript
Javascript必知必会(四)js类型转换
2016/06/08 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
浅谈在Vue-cli里基于axios封装复用请求
2017/11/06 Javascript
vue多页面开发和打包正确处理方法
2018/04/20 Javascript
浅谈Express.js解析Post数据类型的正确姿势
2019/05/30 Javascript
es6函数之箭头函数用法实例详解
2020/04/25 Javascript
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
Python3.5运算符操作实例详解
2019/04/25 Python
利用python在excel中画图的实现方法
2020/03/17 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
django下创建多个app并设置urls方法
2020/08/02 Python
如何用tempfile库创建python进程中的临时文件
2021/01/28 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
医学院毕业生自荐信
2013/11/08 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
求职自我推荐信
2014/06/25 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
辩论赛新闻稿
2015/07/17 职场文书
Python实现老照片修复之上色小技巧
2021/10/16 Python
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers