python 讀取更新中的log 或其它文本方式
在項(xiàng)目中遇到這個(gè)問題,想把本地的log文件通過 Server-Send Event 的形式 發(fā)送給前端。
但是如何把那些 新增加log文本 讀取出來就成了問題。
想過遍歷log文件取得行數(shù),讀取最后幾行文件,這種方式,不過缺點(diǎn)也很明顯,log 文件很有可能會(huì)重復(fù)。因此在網(wǎng)上看了些介紹,也查了些資料,整理了如下代碼。
start_point=0 def read_logs(): fo = open("heakth_info.log", "rb") # 一定要用'rb'因?yàn)閟eek 是以bytes來計(jì)算的 print ("文件名為: ", fo.name) global start_point #使用全局變量,讓start_point 時(shí)刻保持在已經(jīng)輸出過的那個(gè)字節(jié)位 fo.seek(start_point, 1)#移動(dòng)文件讀取指針到指定位置 for line in fo.readlines(): print ("讀取的數(shù)據(jù)為:" + str(line.decode())) #輸出后的指針位置賦值給start_piont start_point=fo.tell() fo.close()
在這里fo = open("heakth_info.log", "rb") 一定要用rb 因?yàn)閟eek是以字節(jié)算的。
使用全局變量 讓start_point 在運(yùn)行過后始終保持在最后輸出完成的位置。成為下次運(yùn)行的起點(diǎn)。
fo.tell() 返回的是文件當(dāng)前的位置,在運(yùn)行結(jié)尾賦值給 start_point
這樣只要定時(shí)呼出這個(gè) 函數(shù) 就能獲得最新的 log 了。
以上這篇python 讀取更新中的log 或其它文本方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用torchtext導(dǎo)入NLP數(shù)據(jù)集的操作
這篇文章主要介紹了使用torchtext導(dǎo)入NLP數(shù)據(jù)集的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Jupyter 無(wú)法下載文件夾如何實(shí)現(xiàn)曲線救國(guó)
這篇文章主要介紹了Jupyter 無(wú)法下載文件夾如何實(shí)現(xiàn)曲線救國(guó)?今天小編就為大家?guī)砹私鉀Q方法,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-04-04Python Django搭建文件下載服務(wù)器的實(shí)現(xiàn)
這篇文章主要介紹了Python Django搭建文件下載服務(wù)器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05Python在信息學(xué)競(jìng)賽中的運(yùn)用及Python的基本用法(詳解)
下面小編就為大家?guī)硪黄狿ython在信息學(xué)競(jìng)賽中的運(yùn)用及Python的基本用法(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08Python數(shù)據(jù)存儲(chǔ)之 h5py詳解
今天小編就為大家分享一篇Python數(shù)據(jù)存儲(chǔ)之 h5py詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12python suds訪問webservice服務(wù)實(shí)現(xiàn)
這篇文章主要介紹了python suds訪問webservice服務(wù)實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06