使用pyinotify来监视文件创建,但是等待它完全写入磁盘

Fal*_*rri 7 python linux file pyinotify

我正在使用pyinotify来查看在其中创建文件的文件夹.当创建某些文件时,我想移动它们.问题是,一旦创建文件(显然),我的程序就会尝试移动它,甚至在它完全写入磁盘之前.

有没有办法使pyinotify等到一个文件完全写入磁盘,然后通知我它已被创建?还是有任何简单的方法,在我收到通知后,让python等待移动它直到它完成写入?

unu*_*tbu 15

pyinotify对IN_CLOSE_WRITE事件做出反应:

wm.add_watch(watched_dir, pyinotify.IN_CLOSE_WRITE, proc_fun=MyProcessEvent())
Run Code Online (Sandbox Code Playgroud)

这是来自man 5 incrontab,但它同样适用于pyinotify:

   IN_ACCESS           File was accessed (read) (*)
   IN_ATTRIB           Metadata changed (permissions, timestamps, extended attributes, etc.) (*)
   IN_CLOSE_WRITE      File opened for writing was closed (*)
   IN_CLOSE_NOWRITE    File not opened for writing was closed (*)
   IN_CREATE           File/directory created in watched directory (*)
   IN_DELETE           File/directory deleted from watched directory (*)
   IN_DELETE_SELF           Watched file/directory was itself deleted
   IN_MODIFY           File was modified (*)
   IN_MOVE_SELF        Watched file/directory was itself moved
   IN_MOVED_FROM       File moved out of watched directory (*)
   IN_MOVED_TO         File moved into watched directory (*)
   IN_OPEN             File was opened (*)
Run Code Online (Sandbox Code Playgroud)