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中random模块用法实例分析
May 19 Python
Python简单实现安全开关文件的两种方式
Sep 19 Python
Python中的日期时间处理详解
Nov 17 Python
Python单元测试简单示例
Jul 03 Python
Django Form 实时从数据库中获取数据的操作方法
Jul 25 Python
使用Python实现将多表分批次从数据库导出到Excel
May 15 Python
Python3 搭建Qt5 环境的方法示例
Jul 16 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 Python
python自动生成sql语句的脚本
Feb 24 Python
python实现批量移动文件
Apr 05 Python
pandas中DataFrame重置索引的几种方法
May 24 Python
python爬取网页版QQ空间,生成各类图表
Jun 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中使用smarty生成静态文件的例子
2014/04/24 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
[对联广告] JS脚本类
2006/08/27 Javascript
js浮动图片的动态效果
2013/07/10 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
2014/01/15 Javascript
jQuery学习笔记之jQuery原型属性和方法
2014/06/09 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
JavaScript实现多栏目切换效果
2016/12/12 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
bootstrap datepicker的基本使用教程
2019/07/09 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
工程造价与财务管理专业应届生求职信
2013/10/06 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
教师个人成长总结
2015/02/11 职场文书
公司庆典主持词
2015/07/04 职场文书
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技