Я испытываю такую ситуацию:Преждевременное уведомление IN_CLOSE_WRITE с pyinotify
- pyinotify отслеживает файл IN_CLOSE_WRITE событий
- Я что-то изменить в файле и сохранить его
- событие инициируется
- Я прочитал файл и вижу, что он не имеет никаких изменений.
Немного переделав, я noti что он отлично работает, когда я отлаживаю. Я установил точку останова на строке, которая читает файл, тем самым добавляя небольшую задержку. После этого - файл читается и изменения там.
Итак, кажется, что добавление time.sleep(1)
или задержка исполнения каким-то другим способом делает трюк. В противном случае я получаю преждевременное событие IN_CLOSE_WRITE.
Интересно срабатывает ли событие после изменения фиксируются и файл закрывается, или перед тем этого. Кажется, что нет никаких других релевантных событий после IN_CLOSE_WRITE. В то же время, документация немного сложнее:
использование IN_CLOSE_WRITE, потому что, если излучаемый на все изменения на соответствующем файле безопасно написано в файле
Я подал отчет об ошибке о формулировке в FAQ, но тем временем я хотел бы получить дополнительную информацию по этому вопросу. Это должно произойти? Каковы «морально правильные» способы его решения?
Все это происходит на Linux Mint 15 x64.