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):
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:
except Exception:
# raise e
print('获取元素异常!')
else:
pro_file.close()
return self.properties
主程序xx.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
脚本名称:xx.py
脚本功能:主程序,读取.properties配置文件
编写人: pangtaishi
编写日期:2021-02-28
from properties_handler import Properties
# 读取配置文件
dictProperties = Properties("ld.properties").getProperties()
str_all = dictProperties['database']
name = str_all['name']
ip = str_all['ip']
port = str_all['port']
username = str_all['username']
password = str_all['password']
print(str_all)
print(name)
print(ip)
print(port)
print(username)
print(password)
ld.properties#配置信息database.type=Argodatabase.name=dddatabase.ip=10.12.15.225database.port=10000database.username=userdatabase.password=passwdproperties_handler.py#!/usr/bin/python# -*- coding: utf-8 -*-'''脚本名称:properties_handler.py脚本功能:解
本文实例讲述了Python实现加载及解析properties配置文件的方法。分享给大家供大家参考,具体如下:
这里参考前面一篇://www.jb51.net/article/137393.htm
我们都是在java里面遇到要解析properties文件,在python中基本没有遇到这中情况,今天用python跑深度学习的时候,发现有些参数可以放在一个global.properties全局文件中,这样使用的时候更加方便。原理都是加载文件,然后用line方法进行解析判断”=”,自己从网上找到一个工具类,记录一下。
工具类 PropertiesUtiil.py
# -*- coding:utf-8
以.properties为后缀名的文件是在Java开发中非常常用的一种用于存储可变参数的文件类型,例如不同环境的ip地址、端口号、账号密码,又或者是模型的超参数,都可以保存在这类文件中,这样就不需要在代码中找到每个变量的位置并修改。同样,在Python开发中也可以编写一个读取这个文件类型(当然Java还有很多优秀的编程思想,非常值得借鉴),流程非常简单。
1. 编写读取.properties的文件:
properties.py
# 读取Properti...