我有一个脚本来扫描目录以查看何时添加新文件,然后处理其内容。它们是视频文件,因此通常非常大,并且通过网络传输,并且通常需要很长时间才能传输。所以我需要确保他们在继续之前已经完成复制。
目前,一旦我在目录中找到新文件,我就会使用 os.path.mtime 检查修改日期,并将其与上次扫描文件的时间进行比较,看看它是否是仍在修改中。理论上来说,如果不再被修改,那么它应该已经完成传输。
if getmtime(path.join(self.rootFolder, thefile)) < self.lastchecktime: newfiles.append[thefile]
但这似乎不起作用 - 脚本触发得太早并且处理失败,因为文件未完全加载。难道是扫描之间没有足够的暂停,导致 mtime 保持不变……?我在两次扫描之间间隔 10 秒 - 当然,这应该足够了。
有没有一种简单/更Pythonic的方法来做到这一点?这些文件位于虚拟机上运行的 Windows 服务器上。
最佳答案
您可以控制文件的添加吗?如果是这样,您可以在视频上传完成后创建一个名称类似于 videoname-complete
的空文件,并监视这些文件。
关于Python:检查新文件并等待它们完成传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13982806/