欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python處理大日志文件

 更新時間:2019年07月23日 09:06:03   作者:暴走的鵬鵬哥哥  
這篇文章主要為大家詳細介紹了python處理大日志文件的的相關(guān)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python處理大日志文件的具體代碼,供大家參考,具體內(nèi)容如下

# coding=utf-8
import sys
import time
 
class Tail():
 def __init__(self,file_name,callback=sys.stdout.write):
  self.file_name = file_name
  self.callback = callback
 def follow(self,n=10):
  try:
   # 打開文件
   with open(self.file_name) as f:
    self._file = f
    self._file.seek(0,2)
    # 存儲文件的字符長度
    self.file_length = self._file.tell()
    # 打印最后10行
    self.showLastLine(n)
    # 持續(xù)讀文件 打印增量
    while True:
     line = self._file.readline()
     if line:
      self.callback(line)
     time.sleep(1)
  except Exception,e:
   print '打開文件失敗,囧,看看文件是不是不存在,或者權(quán)限有問題'
   print e
 def showLastLine(self, n):
  # 一行大概100個吧 這個數(shù)改成1或者1000都行
  len_line = 100
  # n默認是10,也可以follow的參數(shù)傳進來
  read_len = len_line*n
  # 用last_lines存儲最后要處理的內(nèi)容
  while True:
   # 如果要讀取的1000個字符,大于之前存儲的文件長度
   # 讀完文件,直接break
   if read_len>self.file_length:
    self._file.seek(0)
    last_lines = self._file.read().split('\n')[-n:]
    break
   # 先讀1000個 然后判斷1000個字符里換行符的數(shù)量
   self._file.seek(-read_len, 2)
   last_words = self._file.read(read_len)
   # count是換行符的數(shù)量
   count = last_words.count('\n')
   
   if count>=n:
    # 換行符數(shù)量大于10 很好處理,直接讀取
    last_lines = last_words.split('\n')[-n:]
    break
   # 換行符不夠10個
   else:
    # break
    #不夠十行
    # 如果一個換行符也沒有,那么我們就認為一行大概是100個
    if count==0:
 
     len_perline = read_len
    # 如果有4個換行符,我們認為每行大概有250個字符
    else:
     len_perline = read_len/count
    # 要讀取的長度變?yōu)?500,繼續(xù)重新判斷
    read_len = len_perline * n
  for line in last_lines:
   self.callback(line+'\n')
if __name__ == '__main__':
 py_tail = Tail('test.txt')
 py_tail.follow(20)

 以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python創(chuàng)建自己的加密貨幣的示例

    Python創(chuàng)建自己的加密貨幣的示例

    這篇文章主要介紹了Python創(chuàng)建自己的加密貨幣的示例,幫助大家更好的理解和學習使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python實現(xiàn)自動添加腳本頭信息的示例代碼

    Python實現(xiàn)自動添加腳本頭信息的示例代碼

    這篇文章給大家介紹的一段腳本是自動添加注釋信息的腳本,添加的信息包括腳本名稱、作者和時間等之類的,對于團隊形成統(tǒng)一的編碼規(guī)則很有幫助。有需要的可以參考借鑒。
    2016-09-09
  • python的sorted用法詳解

    python的sorted用法詳解

    在本篇文章里小編給大家整理了關(guān)于python的sorted用法以及相關(guān)實例內(nèi)容,有需要的朋友們參考學習下。
    2019-06-06
  • 深入了解Python二維直方圖

    深入了解Python二維直方圖

    只統(tǒng)計像素的灰度值這一特征,可將其成為一維直方圖。二維直方圖可以統(tǒng)計像素的色相和飽和度,用于查找圖像的顏色直方圖。本文將為大家介紹分別使用OpenCV和NumPy函數(shù)計算直方圖,需要的可以學習一下
    2021-12-12
  • python實現(xiàn)超級瑪麗游戲

    python實現(xiàn)超級瑪麗游戲

    這篇文章主要為大家詳細介紹了python實現(xiàn)超級瑪麗游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • 解決PyCharm中光標變粗的問題

    解決PyCharm中光標變粗的問題

    下面小編就為大家?guī)硪黄鉀QPyCharm中光標變粗的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Python在信息學競賽中的運用及Python的基本用法(詳解)

    Python在信息學競賽中的運用及Python的基本用法(詳解)

    下面小編就為大家?guī)硪黄狿ython在信息學競賽中的運用及Python的基本用法(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 使用Python構(gòu)建Hopfield網(wǎng)絡的教程

    使用Python構(gòu)建Hopfield網(wǎng)絡的教程

    這篇文章主要介紹了使用Python構(gòu)建Hopfield網(wǎng)絡的教程,本文來自于IBM官方網(wǎng)站的技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • minconda安裝pytorch的詳細方法

    minconda安裝pytorch的詳細方法

    這篇文章主要介紹了minconda安裝pytorch的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 如何分離django中的媒體、靜態(tài)文件和網(wǎng)頁

    如何分離django中的媒體、靜態(tài)文件和網(wǎng)頁

    這篇文章主要介紹了如何分離django中的媒體、靜態(tài)文件和網(wǎng)頁,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11

最新評論