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 BeautifulSoup使用方法详解
Nov 21 Python
python使用xlrd模块读写Excel文件的方法
May 06 Python
python判断图片宽度和高度后删除图片的方法
May 22 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
Mar 13 Python
Python利用Beautiful Soup模块修改内容方法示例
Mar 27 Python
详解python上传文件和字符到PHP服务器
Nov 24 Python
详解python中的 is 操作符
Dec 26 Python
Python实现简单的文本相似度分析操作详解
Jun 16 Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 Python
详解Pycharm与anaconda安装配置指南
Aug 25 Python
如何使用PyCharm引入需要使用的包的方法
Sep 22 Python
python如何快速拼接字符串
Oct 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
一个php导出oracle库的php代码
2009/04/20 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
JS、CSS加载中的小问题探讨
2013/11/26 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
浅谈js基础数据类型和引用类型,深浅拷贝问题,以及内存分配问题
2017/09/02 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
JavaScript实现H5接金币功能(实例代码)
2021/02/22 Javascript
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
python分割文件的常用方法
2014/11/01 Python
详细介绍Python的鸭子类型
2016/09/12 Python
python实现排序算法解析
2018/09/08 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
详解CSS3 rem(设置字体大小) 教程
2017/11/21 HTML / CSS
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
千元咖啡店的创业计划书范文
2013/12/29 职场文书
企业理念标语
2014/06/09 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
【海涛dota解说】海涛小满开黑4v5被破两路翻盘潮汐第一视角解说
2022/04/01 DOTA
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS