首頁  >  文章  >  後端開發  >  使用Python監控檔案內容變化程式碼

使用Python監控檔案內容變化程式碼

不言
不言原創
2018-06-04 11:59:103516瀏覽

這篇文章主要介紹了關於使用Python監控檔案內容變化程式碼,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

在python中檔案監控主要有兩個庫,一個是pyinotify,一個是watchdog。 pyinotify依賴Linux平台的inotify,今天我們就來探討下pyinotify.

#利用seek監控檔案內容,並列印出變更內容:

##

#/usr/bin/env python
#-*- coding=utf-8 -*-
 
pos = 0
while True:
  con = open("a.txt")
  if pos != 0:
    con.seek(pos,0)
  while True:
  line = con.readline()
  if line.strip():
    print line.strip()
  pos = pos + len(line)
  if not line.strip():
    break
  con.close()

利用工具pyinotify監控檔案內容變化,當檔案逐漸變大時,可輕鬆完成任務:

#!/usr/bin/env python
#-*- coding=utf-8 -*-
import os
import datetime
import pyinotify
import logging
 
pos = 0
def printlog():
  global pos
  try:
    fd = open("log/a.txt")
  if pos != 0:
    fd.seek(pos,0)
  while True:
    line = fd.readline()
    if line.strip():
      print line.strip()
    pos = pos + len(line)
    if not line.strip():
    break
  fd.close()
  except Exception,e:
  print str(e)
 
class MyEventHandler(pyinotify.ProcessEvent):
  def process_IN_MODIFY(self,event):
    try:
    printlog()
  except Exception,e:
    print str(e)
 
def main():
  printlog()
  wm = pyinotify.WatchManager()
  wm.add_watch("log/a.txt",pyinotify.ALL_EVENTS,rec=True)
  eh = MyEventHandler()
  notifier = pyinotify.Notifier(wm,eh)
  notifier.loop()
if __name__ == "__main__":
  main()

相關推薦:

如何使用Python的Requests套件實作模擬登陸

#

以上是使用Python監控檔案內容變化程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn