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...