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解决字典中的值是列表问题的方法
Mar 04 Python
Python中Random和Math模块学习笔记
May 18 Python
详解Python中的from..import绝对导入语句
Jun 21 Python
浅谈scrapy 的基本命令介绍
Jun 13 Python
Python对列表去重的多种方法(四种方法)
Dec 05 Python
python list是否包含另一个list所有元素的实例
May 04 Python
Python二叉树定义与遍历方法实例分析
May 25 Python
python matplotlib拟合直线的实现
Nov 19 Python
Python栈的实现方法示例【列表、单链表】
Feb 22 Python
解决python便携版无法直接运行py文件的问题
Sep 01 Python
Pandas之缺失数据的实现
Jan 06 Python
pycharm Tab键设置成4个空格的操作
Feb 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
PHP的explode和implode的使用说明
2011/07/17 PHP
php gzip压缩输出的实现方法
2013/04/27 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
PHP利用curl发送HTTP请求的实例代码
2020/07/09 PHP
JavaScript实现自己的DOM选择器原理及代码
2013/03/04 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
jQuery中parents()和parent()的区别分析
2014/10/28 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
基于Bootstrap的Metronic框架实现页面链接收藏夹功能
2016/08/29 Javascript
JS实现页面打印功能
2017/03/16 Javascript
详谈jQuery.load()和Jsp的include的区别
2017/04/12 jQuery
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
2018/05/04 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
详解Vue中使用插槽(slot)、聚类插槽
2019/04/12 Javascript
vue模式history下在iis中配置流程
2019/04/17 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
Python中的推导式使用详解
2015/06/03 Python
Python3使用requests发闪存的方法
2016/05/11 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
村主任“四风”问题个人整改措施
2014/10/04 职场文书
简单租房协议书
2014/10/21 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
Nginx反爬虫策略,防止UA抓取网站
2021/03/31 Servers
Golang日志包的使用
2022/04/20 Golang