亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python處理大日志文件

系統(tǒng) 1872 0

本文實(shí)例為大家分享了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默認(rèn)是10,也可以follow的參數(shù)傳進(jìn)來
  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
    #不夠十行
    # 如果一個換行符也沒有,那么我們就認(rèn)為一行大概是100個
    if count==0:
 
     len_perline = read_len
    # 如果有4個換行符,我們認(rèn)為每行大概有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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 91成人午夜在线精品 | 免费又黄又爽视频 | 草久视频 | 久久水蜜桃 | 国产亚洲在线观看 | 欧美成人另类bbw | jizz女人| 欧美日韩在线播一区二区三区 | 老子影院午夜伦手机不四虎 | 婷婷综合五月 | 国产欧美精品午夜在线播放 | 久久99精品久久久久久园产越南 | 奇米影视亚洲色图 | 亚洲黄网视频 | 久久国产精品一区二区 | 精品国产夜色在线 | 全部在线播放免费毛片 | 久青草国产手机视频免费观看 | 亚洲五月花 | 97国产在线公开免费观看 | 欧美日韩国产高清精卡 | www免费视频com | 亚洲已满18点击进入在线观看 | 男人叼女人的痛爽视频免费 | 天天射夜夜爱 | 精品国产综合区久久久久久 | 中国一级免费毛片 | 免费观看欧美精品成人毛片 | 免费福利小视频 | 日韩欧美一二三 | 欧美精品免费在线观看 | 久久色精品 | 狠狠久久久久综合网 | 深夜精品影院18以下勿进 | 一级a性色生活片毛片 | 国产精品免费视频一区 | 午夜欧美性欧美 | 四虎影视国产884a精品亚洲 | 香蕉视频在线观看网站 | 午夜国产福利视频 | 国产在线麻豆精品 |