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