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文件夹与文件的操作实现代码
Jul 13 Python
使用Python生成url短链接的方法
May 04 Python
Python的math模块中的常用数学函数整理
Feb 04 Python
python中nan与inf转为特定数字方法示例
May 11 Python
Python操作MongoDB详解及实例
May 18 Python
python区块及区块链的开发详解
Jul 03 Python
Django model select的多种用法详解
Jul 16 Python
python 实现兔子生兔子示例
Nov 21 Python
python使用Geany编辑器配置方法
Feb 21 Python
python实现低通滤波器代码
Feb 26 Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 Python
CocosCreator ScrollView优化系列之分帧加载
Apr 14 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下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
2009/09/25 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
lib.utf.js
2007/08/21 Javascript
js异或加解密效果代码
2008/06/25 Javascript
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
2008/09/08 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
使用postMesssage()实现跨域iframe页面间的信息传递方法
2016/03/29 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
2017/05/18 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
JS获取表格视图所选行号的ids过程解析
2020/02/21 Javascript
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
[56:42]完美世界DOTA2联赛循环赛 Matador vs Forest 第二场 11.06
2020/11/06 DOTA
python+selenium+autoit实现文件上传功能
2017/08/23 Python
python利用sklearn包编写决策树源代码
2017/12/21 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
pandas通过字典生成dataframe的方法步骤
2019/07/23 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
通过实例了解Python异常处理机制底层实现
2020/07/23 Python
python实现批处理文件
2020/07/28 Python
上海中网科技笔试题
2012/02/19 面试题
出纳会计岗位职责
2014/03/12 职场文书
房地产公司工程部经理岗位职责
2015/04/09 职场文书
导游词之云南丽江古城
2019/09/17 职场文书
利用python做表格数据处理
2021/04/13 Python
关于Python中进度条的六个实用技巧分享
2022/04/05 Python