Maison  >  Article  >  développement back-end  >  Utiliser Python pour surveiller le code des modifications du contenu du fichier

Utiliser Python pour surveiller le code des modifications du contenu du fichier

不言
不言original
2018-06-04 11:59:103457parcourir

Cet article présente principalement le code permettant d'utiliser Python pour surveiller les modifications du contenu des fichiers. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Il existe deux types principaux de. surveillance des fichiers en python. Il existe deux bibliothèques, l'une est pyinotify et l'autre est watchdog. pyinotify s'appuie sur inotify sur la plate-forme Linux. Aujourd'hui, nous allons discuter de pyinotify

Utiliser la recherche pour surveiller le contenu du fichier et imprimer le contenu modifié :

#/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()

<.>

Utilisez l'outil pyinotify pour surveiller les modifications du contenu du fichier. Lorsque le fichier devient progressivement plus volumineux, vous pouvez facilement terminer la tâche :

#!/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()
Recommandations associées :

Comment utiliser le package Requests de Python pour implémenter une connexion simulée

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn