Maison >développement back-end >Tutoriel Python >Comment puis-je surveiller efficacement les modifications de fichiers spécifiques sans interrogation ?

Comment puis-je surveiller efficacement les modifications de fichiers spécifiques sans interrogation ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-16 02:34:10604parcourir

How Can I Efficiently Monitor Specific File Changes Without Polling?

Surveillance des modifications apportées aux fichiers sans interrogation

Dans les cas où vous devez suivre les modifications apportées à un fichier journal spécifique en temps réel, il est crucial d'éviter en utilisant des techniques de sondage. Une approche plus efficace consiste à utiliser les notifications d'événements du système de fichiers.

Utilisation du module win32file

La fonction win32file.FindNextChangeNotification de la bibliothèque PyWin32 vous permet de surveiller les modifications de fichiers. . Cependant, il n'offre pas directement la possibilité de surveiller un fichier spécifique.

Présentation de Watchdog

Une solution alternative consiste à utiliser la bibliothèque Watchdog. Il propose une API multiplateforme pour surveiller les événements du système de fichiers, notamment la surveillance des modifications apportées à un fichier ou un répertoire spécifique.

Voici comment utiliser Watchdog pour surveiller les modifications de fichiers :

import watchdog.observers
import watchdog.events

class FileChangeHandler(watchdog.events.FileSystemEventHandler):
    def on_modified(self, path, filename):
        # Handle file changes here
        print(f"File modified: {filename}")

observer = watchdog.observers.Observer()
observer.schedule(FileChangeHandler(), path, recursive=False)
observer.start()
observer.join()

Ce script détectera automatiquement les modifications apportées au fichier spécifié et invoquera la méthode on_modified avec le nom de fichier modifié.

Remarque : Utilisation Le chien de garde sur un lecteur réseau mappé peut ne pas fonctionner en raison des limitations dans la façon dont Windows gère les notifications de modification de fichiers sur les volumes réseau.

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