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爬虫入门教程之糗百图片爬虫代码分享
Sep 02 Python
python3生成随机数实例
Oct 20 Python
使用Python标准库中的wave模块绘制乐谱的简单教程
Mar 30 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
Apr 05 Python
python图片验证码生成代码
Jul 02 Python
python执行使用shell命令方法分享
Nov 08 Python
深入浅析Python中的yield关键字
Jan 24 Python
Python subprocess模块常见用法分析
Jun 12 Python
利用python提取wav文件的mfcc方法
Jan 09 Python
python运行时强制刷新缓冲区的方法
Jan 14 Python
Python中if有多个条件处理方法
Feb 26 Python
详解java调用python的几种用法(看这篇就够了)
Dec 10 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和ACCESS写聊天室(三)
2006/10/09 PHP
PHP array_push 数组函数
2009/12/26 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
读jQuery之十四 (触发事件核心方法)
2011/08/23 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
js验证是否为数字的总结
2013/04/14 Javascript
jquery实现无限分级横向导航菜单的方法
2015/03/12 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
AngularJS中如何使用echart插件示例详解
2016/10/26 Javascript
jquery mobile移动端幻灯片滑动切换效果
2020/04/15 Javascript
详解VueJs前后端分离跨域问题
2017/05/24 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
写一个移动端惯性滑动&回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
通过vue手动封装on、emit、off的代码详解
2019/05/29 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
[01:05:00]2018国际邀请赛 表演赛 Pain vs OpenAI
2018/08/24 DOTA
详解Python的Django框架中的中间件
2015/07/24 Python
python中的for循环
2018/09/28 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
用pip给python安装matplotlib库的详细教程
2021/02/24 Python
canvas烟花特效锦集
2018/01/17 HTML / CSS
网络研修随笔感言
2014/02/17 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
征婚广告词
2014/03/17 职场文书
2015年党小组工作总结
2015/05/26 职场文书
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
pandas数值排序的实现实例
2021/07/25 Python