我目前正在开发一个将图像添加到文件夹的项目。当他们添加时,他们还需要被移动(以四个为一组)到二级文件夹,覆盖已经在那里的图像(如果有的话)。我有点使用watchdog.py监视第一个文件夹。当' on_created' event fires我获取新添加的图像的文件路径并使用shutil.copy()将其复制到第二个文件夹,递增计数器并使用计数器值在复制时重命名图像(因此它变为文件夹/ 1.jpg )。当计数器达到4时,它将重置为0,并且最新的4个图像显示在网页上。所有这些文件夹都位于同一驱动器上的本地文件系统中。
我的问题是,有时似乎事件在图像完全保存在第一个文件夹之前触发(图像大约1Mb但略有不同,所以我无法检查文件大小)导致部分或损坏图像被复制到第二个文件夹。在最坏的情况下,它会抛出一个IOError,说该文件甚至不存在。
任何建议。我使用的是OSX 10.11,Python 2.7。图像都是Jpegs。
答案 0 :(得分:1)
我看到多种解决方案:
filexxx.jpg.part
,完全编写完成后再重命名,删除.part
。
然后在您的看门狗中,请确保不要处理以.part