回覆列表
  • 1 # 使用者9866520236700

    工作中經常會遇到處理日誌檔案的問題:為了得到日誌的最新狀態,我們需要獲取日誌檔案的最後部分行來做判斷。那麼,這種情況下我們應該怎麼做呢?

    1)常規方法:從前往後依次讀取

    步驟:open開啟日誌檔案。

    讀取檔案,獲取檔案的總行數。

    遍歷所有行,提取指定行的資料。

    優點:簡單,方便

    缺點:當檔案大了以後時間太慢,無法忍受

    2)推薦方法:

    步驟:open開啟日誌檔案。

    移動檔案讀取指標到檔案末尾。

    從後往前移動指標直到合適的位置。

    讀取檔案,提取指定行的資料。

    優點:時間相對固定,適合處理大檔案

    示例:

    [python] view plain copy

    logFile = open("logFilePath.log", "r")

    logFile.seek(0,2)

    logFile.seek(-1000000,2)

    rowCount = 0

    for row in logFile.readlines()[1:]:

    pass

    seek():移動檔案讀取指標到指定位置

    tell():返回檔案讀取指標的位置

    seek()的三種模式:

    (1)f.seek(p,0) 移動當檔案第p個位元組處,絕對位置

    (2)f.seek(p,1) 移動到相對於當前位置之後的p個位元組

    (3)f.seek(p,2) 移動到相對文章尾之後的p個位元組

  • 中秋節和大豐收的關聯?
  • 土豆絲炒豇豆的家常做法?