pythonparsingkqueuefile-monitoring

Reading updated files on the fly in Python


I'm writing two Python scripts that both parse files. One is a standard unix logfile and the other is a binary file. I'm trying to figure out the best way to monitor these so I can read data as soon as they're updated. Most of the solutions I've found thus far are linux specific, but I need this to work in FreeBSD.

Obviously one approach would be to just run my script every X amount of time, but this seems gross and inefficient. If I want my Python app running continuously in the background monitoring a file and acting on it once it's changed/updated, what's my best bet?


Solution

  • Have you tried KQueue events?

    http://docs.python.org/library/select.html#kqueue-objects

    kqueue is the FreeBSD / OS version of inotify (file change notification service). I haven't used this, but I think it's what you want.