我遇到以下情况:
稍作修改后,我注意到在调试时它可以正常工作。我在读取文件的行上设置了一个断点,因此增加了一点延迟。之后-读取文件,并在那里进行更改。
因此,似乎可以通过添加
time.sleep(1)
或以其他方式延迟执行来达到目的。否则,我会收到一个过早的IN_CLOSE_WRITE事件。我想知道是否在提交更改并关闭文件后触发事件,还是在之前触发事件。 IN_CLOSE_WRITE之后似乎没有其他相关事件。同时,文档有些棘手:
我提交了一个有关FAQ中措辞的错误报告,但与此同时,我希望获得更多有关此问题的信息。这应该发生吗?解决问题的“道德正确”方法是什么?
所有这些都是在Linux Mint 15 x64上发生的。
最佳答案
事实证明,此行为是not an anomaly:
最重要的是,您不能依靠IN_CLOSE_WRITE
来确定您的数据已完成写入磁盘。
换句话说,这不是一个过早的通知,它是在正确的时间到来的。但是操作系统的基 native 制可以继续对该文件执行操作。
关于inotify - 带有pyinotify的IN_CLOSE_WRITE过早通知,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18782050/