¿Una forma de “escuchar” los cambios en un sistema de archivos de Python en Linux?

Quiero poder detectar cada vez que se creen nuevos archivos o cuando los archivos existentes se modifiquen o eliminen dentro de un determinado árbol de directorios (o conjunto de árboles). La forma de fuerza bruta para hacer esto sería simplemente volver a escanear el árbol buscando cambios, pero estoy buscando una solución más “dirigida por interrupciones” donde el sistema de archivos le dice a mi código lo que cambió cuando cambia, en lugar de que mi código tenga que hacerlo. “encuesta” escaneando continuamente a través de miles de archivos en busca de cambios.

Se prefiere una forma de hacer esto en Python, pero si tengo que escribir un módulo nativo en C, está bien como último recurso.

Pyinotify es IMHO, la única forma de obtener cambios en el sistema sin escanear el directorio.

twisted.internet.inotify ! Es mucho más útil tener un bucle de eventos adjunto que solo inotify flotante. El uso de twisted también te da una filepath de filepath gratuita, que es una buena biblioteca para manipular más fácilmente las rutas de archivos en python.