Frapper win32api est un non-sens, et je voulais l'écrire facilement, alors quand je cherchais avec pypi, j'ai trouvé quelque chose appelé watchdog.
Vous trouverez ci-dessous le code qui "vous avertit lorsque trois fichiers * .jpg, * .png, * .txt sont créés / modifiés / supprimés".
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()
Je pense que vous devriez écrire le processus que vous souhaitez exécuter dans on_created, on_modified, on_deleted.
Par exemple, vous pouvez l'automatiser en utilisant le chien de garde sans modifier le document et le créer vous-même en tant que make html.
La seule chose qui m'inquiétait lorsque je l'ai touché était que si c'était on_any_event lors de la création du fichier, il serait exécuté deux fois.
Comme vous pouvez le voir en utilisant ce code, il semble que l'événement create soit exécuté dans l'ordre on_created, on_modified.
Je ne sais pas ce qu'il y a à l'intérieur du système d'exploitation, donc ce n'est qu'une estimation.
Recommended Posts