如何在目录中使用pyinotify创建一个spool?

0 投票
1 回答
901 浏览
提问于 2025-04-17 11:59

我想把一个文件夹里的每个文件在创建时都移动到另一个地方。也许我可以先干掉那个守护进程(运行中的pyinotify实例),然后原来的文件继续在orig/spool文件夹里创建。

我希望在守护进程重新启动后再处理这些文件。也许我可以利用inotify内核队列来实现?

提前谢谢你们!

1 个回答

1

其实你并不想在文件创建的时候就把它们移动,而是等到文件关闭的时候再移动。一旦文件关闭了(并且没有人再打开它),你就可以认为它已经“完成”了,这时候移动它就不会有意外情况发生。

你可以关注一个叫做“close_write”的事件。虽然这并不能保证文件里有数据或者有新数据,但你需要确认一下修改后再关闭的事件。不过99.99%的情况下,关注“close_write”就足够了。

撰写回答