watcher example python file cross-platform filesystems monitoring

python - example - Monitoreo de contenido de archivos/directorios?



python watchdog (5)

Esta pregunta ya tiene una respuesta aquí:

Estoy buscando un paquete de python de monitoreo de archivos multiplataforma? Sé que es posible monitorear archivos en Windows usando pywin32, y hay paquetes que funcionan en Linux / Unix, pero ¿alguien sabe sobre uno multiplataforma?


Encontré este enlace, que habla de tu problema. Aunque en realidad no proporciona una solución / biblioteca, creo que ayudará. http://www.stepthreeprofit.com/2008/06/cross-platform-monitoring-of-filesystem.html

Todavía no creo que haya una plataforma multiplataforma, por lo que es posible que desee lanzar la suya propia.

No tengo experiencia en esta área, así que no estoy muy seguro. Espero que esto ayude.

Nota
Estoy corregido, gamin está disponible en cygwin como Adam Bernier me señaló en un comentario. Es posible que desee investigar otras opciones en cygwin (si existen).


Estoy trabajando en una biblioteca con licencia de MIT que ayuda a los programas de Python a controlar los eventos del sistema de archivos de la manera más portátil posible. Hay diferencias que estoy tratando de resolver. Versión altamente alfa en este momento:

Compruébelo aquí: http://github.com/gorakhargosh/watchdog/

Los parches y las contribuciones son bienvenidos.

Espero eso ayude. =) Saludos.


La manera más fácil en Linux es utilizar inotifywait (dado que su kernel es lo suficientemente reciente). No necesita ningún enlace especial, inotifywait se puede personalizar para imprimir líneas de salida en salida estándar de la manera que desee. Mira y esta pregunta para un buen ejemplo.


Para sistemas basados ​​en Unix / Linux, debe usar File Alteration Monitor Python bindings para libfam .

Para los sistemas basados ​​en Windows, debe vincularse con la API de Win32 FindFirstChangeNotification y las funciones relacionadas.

En cuanto a una plataforma cruzada, no sé de una buena plataforma cruzada. Creo que lo mejor sería construir un módulo usted mismo que funciona en cualquiera de los sistemas operativos que utiliza uno de los 2 métodos anteriores después de detectar qué sistema operativo es.