Python Watchdog问题不触发外部软件保存的文件的事件

时间:2017-05-18 11:36:21

标签: python filesystems inotify watchdog python-watchdog

看门狗的“文件创建触发事件”是否取决于文件创建方式的具体内容?我发现外部程序将文件保存到目录中以及将它们复制到目录中时存在差异。

我正在使用监视程序来监视目录,触发在该目录中创建的新文件,然后它为这些文件运行一堆其他脚本。但是我遇到了一个奇怪的问题。我正在监视一个目录,其中一个外部程序随着时间的推移将新文件保存到该目录中。当这些文件出现在目录中时,看门狗不会触发。但是我正在运行一个监视第二个目录的程序的单独实例,当我将文件复制到这个目录时,看门狗会按预期触发并运行代码。

我在Linux机器上运行它。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

是的。检查外部程序如何创建文件。就我而言,外部程序正在创建一个文件名,该文件的名称是以'开头的。以' .tmp'结尾当它写入临时文件时,它正在将它移动到实际的文件名,该文件名以' .json'结尾(为此我设置了观察者)。在这种情况下,仅触发on_moved事件。

覆盖on_moved处理程序将解决此问题。