python 實時遍歷日誌檔案

2022-10-04 21:54:31 字數 1399 閱讀 9660

open 遍歷乙個大日誌檔案

使用 readlines() 還是 re ?

總體上 readlines() 不慢於python 一次次呼叫 readline(),因為前者的迴圈在c語言層面,而使用readline() 的迴圈是在python語言層面。

但是 readlines() 會一次性把全部資料讀到記憶體中,記憶體佔用率會過高,readline() 每次唯讀一行,對於讀取 大檔案, 需要做出取捨。

如果不需要使用 seek() 定位偏移, for line in open('file') 速度更佳。

使用 readlines(),適合量級較小的日誌檔案

import os

import time

def check():

p =

while true:

f = open("log.txt", "r+")

f = open("result.txt", "a+")

f.seek(p, )

#readlines()方法

filelist = f.readlines()

if filelist:

for line in filelist:

#對行內容進行操作

f.write(line)

#獲取當前位置,為下次while迴圈做偏移

p = f.程式設計客棧tell()

print 'now p ', p

f.close()

f.close()

time.sleep()

if __name__ == '__main__':

check()

使用 readline(),避免記憶體佔用率過大

import os

import time

def check():

p =

whilewww.cppcns.com true:

f = open("log.txt", "r+")

f = open("result.txt", "a+")

f.seek(p, )

#while readline()方法

while true:

l = f.readline()

#空行同樣為真

l:#對行內容操作

f.write(l)

else:

#程式設計客棧獲取當前位置,作為偏移值

p = f.tell()

f.close()

f.close()

break

print 'now p', p

time.sleep()

if __name__ == '__main__':

check()

本文標題: python 實時遍歷日誌檔案

本文位址:

tail f 實時檢視日誌檔案

taii 用於檢視檔案的內容,有乙個常用的引數 f 用於查閱正在改變的日誌檔案。tail f filename 會把filename檔案裡的最尾部內容顯示在螢幕上且不斷重新整理,只要filename更新就能看到最新的檔案內容 一 命令格式 tail 引數 檔案位址 二 引數 f 迴圈讀取 q 不顯示...

python寫入日誌檔案並實時輸出在控制台

import logging from logging import handlers class logger object level relations 日誌關係對映 def init self,filename,level info backcount 10,fmt asctime s pa...

遍歷日誌檔案並列印

error reporting e all ini set display errors 1 function load file return contents function eliminate lines new dul line return new function qsort arra...