import os
from select import poll, POLLIN
r_fd, w_fd = os.pipe()
p = poll()
p.register(r_fd, POLLIN)
os.write(w_fd, 'X')
while True:
    events = p.poll(100)
for e in events:
    print(e)
os.read(r_fd, 1)
Как работает опрос файла на наличие изменений?