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操作MongoDB数据库PyMongo库使用方法
Apr 27 Python
让python在hadoop上跑起来
Jan 27 Python
python将unicode转为str的方法
Jun 21 Python
Queue 实现生产者消费者模型(实例讲解)
Nov 13 Python
Python使用MD5加密算法对字符串进行加密操作示例
Mar 30 Python
python高阶爬虫实战分析
Jul 29 Python
Python 循环终止语句的三种方法小结
Jun 24 Python
Win10环境python3.7安装dlib模块趟过的坑
Aug 01 Python
python实现回旋矩阵方式(旋转矩阵)
Dec 04 Python
Python3爬虫关于代理池的维护详解
Jul 30 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
Oct 26 Python
手把手教你配置JupyterLab 环境的实现
Feb 02 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
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
Discuz不使用插件实现简单的打赏功能
2019/03/21 PHP
js获得网页背景色和字体色的方法
2014/03/21 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
微信JSSDK上传图片
2015/08/23 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
2016/08/08 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
几种tab切换详解
2017/02/03 Javascript
js实现倒计时关键代码
2017/05/05 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
JS学习笔记之数组去重实现方法小结
2019/05/29 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
bootstrap实现嵌套模态框的实例代码
2020/01/10 Javascript
JS遍历树层级关系实现原理解析
2020/08/31 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
netbeans7安装python插件的方法图解
2013/12/24 Python
python动态加载变量示例分享
2014/02/17 Python
Python中针对函数处理的特殊方法
2014/03/06 Python
详解Python中的__init__和__new__
2014/03/12 Python
Python及PyCharm下载与安装教程
2017/11/18 Python
python flask框架实现重定向功能示例
2019/07/02 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
房地产开盘策划方案
2014/02/10 职场文书
2014最新股权信托合同协议书
2014/11/18 职场文书
捐款感谢信
2015/01/20 职场文书
2015小学教师年度考核工作总结
2015/05/12 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby