¿Cómo puedo “ver” un archivo para modificarlo o modificarlo?

Me gustaría invocar mi navegador chrome o firefox cuando se modifica un archivo que especifico. ¿Cómo podría “ver” ese archivo para hacer algo cuando se modifica?

Programmáticamente, parece que los pasos son … básicamente establecer un intervalo interminable cada segundo y almacenar en caché la fecha de modificación inicial, luego comparar la fecha cada segundo, cuando cambia invoca X.

Como se ha señalado, puede utilizar pyinotify :

P.ej:

 import webbrowser import pyinotify class ModHandler(pyinotify.ProcessEvent): # evt has useful properties, including pathname def process_IN_CLOSE_WRITE(self, evt): webbrowser.open(URL) handler = ModHandler() wm = pyinotify.WatchManager() notifier = pyinotify.Notifier(wm, handler) wdd = wm.add_watch(FILE, pyinotify.IN_CLOSE_WRITE) notifier.loop() 

Esto es más eficiente que el sondeo. El núcleo le indica cuándo realiza la operación, sin que tenga que preguntar constantemente.

El Kernel de Linux tiene una API de monitoreo de archivos llamada inotify. Un enlace de python es pyinotify .

Con él, puedes construir lo que quieras.

Instale inotify-tools y escriba un script de shell simple para ver un archivo.

La otra opción es utilizar una sum de comprobación. Puedes usar un patrón similar al nosy.py de nose. Utilizo el de dingus para verificar si hay modificaciones en mi directorio y ejecutar el conjunto de pruebas.

Usa FAM para poner un monitor en el archivo.

¡Usa una función hash rápida, un trabajo cron y listo!

Además, esto parece relevante: http://en.wikipedia.org/wiki/Inotify

Aparentemente, watchdog funciona tanto en Linux como en OSX que pueden usarse para monitorear los cambios en un directorio, así como con una gran documentación de ejemplo. También funciona con python3.x en caso de que no quiera ser forzado a usar python2.x