Python實(shí)現(xiàn)加載及解析properties配置文件的方法
本文實(shí)例講述了Python實(shí)現(xiàn)加載及解析properties配置文件的方法。分享給大家供大家參考,具體如下:
這里參考前面一篇:http://www.dhdzp.com/article/137393.htm
我們都是在java里面遇到要解析properties文件,在python中基本沒(méi)有遇到這中情況,今天用python跑深度學(xué)習(xí)的時(shí)候,發(fā)現(xiàn)有些參數(shù)可以放在一個(gè)global.properties全局文件中,這樣使用的時(shí)候更加方便。原理都是加載文件,然后用line方法進(jìn)行解析判斷”=”,自己從網(wǎng)上找到一個(gè)工具類,記錄一下。
工具類 PropertiesUtiil.py
# -*- coding:utf-8 -*-
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
通過(guò)上面的代碼就可以解析了properties文件了。新建一個(gè)文件
global.properties 文件
a.name.last=jie b.name.first=shi #b.name=shijie
測(cè)試 test.py
from PropertiesUtil import Properties
dictProperties=Properties("global.properties").getProperties()
print dictProperties
控制臺(tái)打印:
/usr/bin/python2.7 /home/tengxing/rude-carnie/test.py
{'a': {'name': {'last': 'jie'}}, 'b': {'name': {'first': 'shi'}}}
Process finished with exit code 0
我感覺(jué)還是挺方便的,就對(duì)做深度學(xué)習(xí)來(lái)說(shuō)吧,把模型的的位置,訓(xùn)練數(shù)據(jù)放在一個(gè)global.properties文件中,方便管理。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- Python實(shí)現(xiàn)從文件中加載數(shù)據(jù)的方法詳解
- Python 保存加載mat格式文件的示例代碼
- python3+selenium獲取頁(yè)面加載的所有靜態(tài)資源文件鏈接操作
- python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5動(dòng)態(tài)加載QSS樣式文件
- 解決Python 使用h5py加載文件,看不到keys()的問(wèn)題
- python用pandas數(shù)據(jù)加載、存儲(chǔ)與文件格式的實(shí)例
- Python加載帶有注釋的Json文件實(shí)例
- python web基礎(chǔ)之加載靜態(tài)文件實(shí)例
- python:關(guān)于文件加載及處理方式
相關(guān)文章
利用PyQt中的QThread類實(shí)現(xiàn)多線程
本文主要給大家分享的是python實(shí)現(xiàn)多線程及線程間通信的簡(jiǎn)單方法,非常的實(shí)用,有需要的小伙伴可以參考下2020-02-02
用Python復(fù)現(xiàn)二戰(zhàn)德軍enigma密碼機(jī)
大家好,本篇文章主要講的是用Python復(fù)現(xiàn)二戰(zhàn)德軍enigma密碼機(jī),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2022-01-01
pandas中read_excel()函數(shù)的基本使用
在Python的數(shù)據(jù)處理庫(kù)pandas中,read_excel()函數(shù)是用于讀取Excel文件內(nèi)容的強(qiáng)大工具,本文就來(lái)介紹一下如何使用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
python計(jì)算階乘和的方法(1!+2!+3!+...+n!)
今天小編就為大家分享一篇python計(jì)算階乘和的方法(1!+2!+3!+...+n!),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
使用Pandas實(shí)現(xiàn)可視化帶有標(biāo)簽列的數(shù)據(jù)表
Pandas是Python中一個(gè)靈活強(qiáng)大的數(shù)據(jù)處理庫(kù),它提供了大量數(shù)據(jù)操作和分析工具,本文我們將討論如何使用Pandas可視化帶有標(biāo)簽列的數(shù)據(jù)表,以便更好地呈現(xiàn)和傳達(dá)數(shù)據(jù)的信息,需要的可以了解下2024-02-02
Python實(shí)現(xiàn)本地緩存的幾種方法小結(jié)
緩存是一種常見(jiàn)的技術(shù),用于存儲(chǔ)重復(fù)請(qǐng)求的結(jié)果,Python 作為一種靈活的編程語(yǔ)言,提供了多種實(shí)現(xiàn)本地緩存的方法,本文將探討 Python 中實(shí)現(xiàn)本地緩存的幾種策略,并提供具體的代碼示例,感興趣的小伙伴跟著小編一起來(lái)看看吧2024-07-07

