如何用python最快的獲取大文件的最後幾行

        工做中常常會遇處處理日誌文件的問題:爲了獲得日誌的最新狀態,咱們須要獲取日誌文件的最後部分行來作判斷。那麼,這種狀況下咱們應該怎麼作呢?python

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

              步驟:open打開日誌文件。指針

                          讀取文件,獲取文件的總行數。日誌

                          遍歷全部行,提取指定行的數據。it

              優勢:簡單,方便class

              缺點:當文件大了之後時間太慢,沒法忍受遍歷

         2)推薦方法:方法

               步驟:open打開日誌文件。文件讀取

                          移動文件讀取指針到文件末尾。數據

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

                          讀取文件,提取指定行的數據。

              優勢:時間相對固定,適合處理大文件

         示例:

    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個字節

相關文章
相關標籤/搜索