Я хочу создать модуль, который будет следить за папкой. Я пишу некоторые кода:методы pyinotify, не называемые
import os, pyinotify
class FileWatcher:
def start_watch(self, dir):
wm = pyinotify.WatchManager()
self.notifier = pyinotify.Notifier(wm, EventProcessor())
mask = pyinotify.IN_CREATE | pyinotify.IN_MODIFY | pyinotify.IN_DELETE | pyinotify.IN_DELETE_SELF | pyinotify.IN_MOVED_FROM | pyinotify.IN_MOVED_TO
wdd = wm.add_watch(dir, mask, rec=True)
while True:
self.notifier.process_events()
if self.notifier.check_events():
self.notifier.read_events()
def stop_watch(self):
self.notifier.stop()
print ('\nWatcher stopped')
class EventProcessor(pyinotify.ProcessEvent):
def process_IN_CREATE(self, event):
print('in CREATE')
def process_IN_MODIFY(self, event):
print('in MODIFY')
def process_IN_DELETE(self, event):
print('in delete')
def process_IN_DELETE_SELF(self, event):
print('in delete self')
def process_IN_MOVED_FROM(self, event):
print('in MOVED_FROM')
def process_IN_MOVED_TO(self, event):
print('in IN_MOVED_TO')
if __name__ == "__main__":
watcher = FileWatcher()
try:
folder = "/home/user/Desktop/PythonFS"
watcher.start_watch(folder)
except KeyboardInterrupt:
watcher.stop_watch()
Когда я модифицирует файл, а затем удалить его методы process_IN_MODIFY и process_IN_DELETE никогда не называют. Как кошка я его решаю?
Но когда я создаю файл, вызывается метод process_IN_CREATE().
ОС Linux Mint 13.
UPD: Новый код
Umm, этот код не является синтаксически действительным (отступ отсутствует, просто вставьте его, выберите его и нажмите Ctrl + K), и он определяет только классы и функции и не вызывает ни одного из них. – phihag
Это синтаксически vallid code .. Методы должны вызывать из уведомителя, потому что я помещаю экземпляр EventProcessor в конструктор pyinotify.Notifier (...) – Vetalll
[Нет, это не так) (http://ideone.com/NJGsub). И почему есть некоторые вызываемые функции, код на самом деле их не вызывает. – phihag