我遇到以下情况:

  • pyinotify监视文件中的IN_CLOSE_WRITE事件
  • 我更改了文件中的内容并将其保存为
  • 事件被触发
  • 我阅读了文件,发现它没有变化

  • 稍作修改后,我注意到在调试时它可以正常工作。我在读取文件的行上设置了一个断点,因此增加了一点延迟。之后-读取文件,并在那里进行更改。

    因此,似乎可以通过添加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/

    10-11 11:25