2013-04-28 4 views
3

Je dois surveiller (en utilisant watchdog) un seul fichier, pas un répertoire entier.Surveillance d'un seul fichier

Quelle est la meilleure façon d'éviter de surveiller un répertoire entier? Je suppose que this

class watchdog.events.PatternMatchingEventHandler(patterns=None, ignore_patterns=None, ignore_directories=False, case_sensitive=False)[source] 

peut être utile, mais comment définir un modèle approprié pour mon dossier (C: /dir1/dir2/file.txt)?

+1

Désolé pour être hors sujet, mais je peux » t résister à ma curiosité. Pourquoi quelqu'un s'appellerait Tom Cruise? :) –

+3

's/dictionary/directory/g' peut-être? – Aya

Répondre

2

Si vous voulez regarder un chemin de fichier comme C:/dict1/dict2/file.txt, je pense que c'est votre modèle là. Il n'y a pas de caractères génériques, donc il devrait être utilisable tel quel.

En aparté, si chien de garde est vous pouvez aussi envisager Pyinotify vous donner du mal,: https://github.com/seb-m/pyinotify

+0

Oui, mais 'C:/dict1/dict2/file.txt' car un motif ne fonctionne pas ... et pyinotify ne fonctionne que sous Linux. –

+1

@TomCruise Vous devrez peut-être le mettre dans une liste, par ex. 'PatternMatchingEventHandler (patterns = ['C: /dict1/dict2/file.txt'], ...)' – Aya

+0

OUI! Ça doit être une liste! Merci beaucoup! –

1

La façon de fournir des modèles pour PatternMatchingEventHandler quels

from watchdog.events import PatternMatchingEventHandler 

class MyHandler(PatternMatchingEventHandler): 
    patterns = ["*.xml", "*.log", "*/test.txt"] # */test.txt to watch that specifi file