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)文章
Jupyter Notebook遠(yuǎn)程登錄及密碼設(shè)置操作
今天小編就為大家分享一篇Jupyter Notebook遠(yuǎn)程登錄及密碼設(shè)置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Python?OpenCV中cv2.minAreaRect實例解析
minAreaRect的主要作用是獲取一個多邊形(就是有很多個點組成的一個圖形)的最小旋轉(zhuǎn)矩形(旋轉(zhuǎn)矩形就是我們平常見到的水平框帶了角度),這篇文章主要給大家介紹了關(guān)于Python?OpenCV中cv2.minAreaRect的相關(guān)資料,需要的朋友可以參考下2022-11-11
Python常見內(nèi)置高階函數(shù)即高階函數(shù)用法
這篇文章主要介紹了Python的三種高階函數(shù)map、filter、reduce,高階函數(shù)就是一個函數(shù)可以作為參數(shù)傳給另外一個函數(shù),或者一個函數(shù)的返回值為另外一個函數(shù)(若返回值為該函數(shù)本身,則為遞歸),滿足其一則為高階函數(shù),具體內(nèi)容,需要的朋友可以參考下面文章的介紹2021-12-12
使用python爬取taptap網(wǎng)站游戲截圖的步驟
這篇文章主要介紹了使用python爬取taptap游戲截圖的步驟,幫助大家更好的理解和學(xué)習(xí)使用python進(jìn)行爬蟲,感興趣的朋友可以了解下2021-05-05
Python利用 SVM 算法實現(xiàn)識別手寫數(shù)字
支持向量機(jī) (Support Vector Machine, SVM) 是一種監(jiān)督學(xué)習(xí)技術(shù),它通過根據(jù)指定的類對訓(xùn)練數(shù)據(jù)進(jìn)行最佳分離,從而在高維空間中構(gòu)建一個或一組超平面。本文將介紹通過SVM算法實現(xiàn)手寫數(shù)字的識別,需要的可以了解一下2021-12-12
Python實現(xiàn)隨機(jī)劃分圖片數(shù)據(jù)集的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何通過Python實現(xiàn)隨機(jī)將圖片與標(biāo)注文件劃分為訓(xùn)練集和測試集,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-05-05

