Win32api zu treffen ist Unsinn, und ich wollte es einfach schreiben. Als ich mit pypi suchte, fand ich etwas namens watchdog.
Unten ist der Code, der "mich benachrichtigt, wenn drei Dateien * .jpg, * .png, * .txt erstellt / bearbeitet / gelöscht werden".
watchdog_example.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import os
from watchdog.events import FileSystemEventHandler
from watchdog.observers import Observer
BASEDIR = os.path.abspath(os.path.dirname(__file__))
def getext(filename):
return os.path.splitext(filename)[-1].lower()
class ChangeHandler(FileSystemEventHandler):
def on_created(self, event):
if event.is_directory:
return
if getext(event.src_path) in ('.jpg','.png','.txt'):
print('%s has been created.' % event.src_path)
def on_modified(self, event):
if event.is_directory:
return
if getext(event.src_path) in ('.jpg','.png','.txt'):
print('%s has been modified.' % event.src_path)
def on_deleted(self, event):
if event.is_directory:
return
if getext(event.src_path) in ('.jpg','.png','.txt'):
print('%s has been deleted.' % event.src_path)
if __name__ in '__main__':
while 1:
event_handler = ChangeHandler()
observer = Observer()
observer.schedule(event_handler,BASEDIR,recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
Ich denke, Sie sollten den Prozess, den Sie ausführen möchten, in on_created, on_modified, on_deleted schreiben.
Sie können es beispielsweise mithilfe von Watchdog automatisieren, ohne das Dokument zu bearbeiten und es selbst als HTML-Datei zu erstellen.
Das einzige, worüber ich mir Sorgen machte, als ich es berührte, war, dass wenn es beim Erstellen der Datei on_any_event war, es zweimal ausgeführt wurde.
Wie Sie anhand dieses Codes sehen können, wird das Erstellungsereignis anscheinend in der Reihenfolge on_created, on_modified ausgeführt.
Ich weiß nicht, was sich im Betriebssystem befindet, es handelt sich also nur um eine Schätzung.
Recommended Posts