在使用python

时间:2016-08-24 14:41:13

标签: python image filesystems

我目前正在开发一个将图像添加到文件夹的项目。当他们添加时,他们还需要被移动(以四个为一组)到二级文件夹,覆盖已经在那里的图像(如果有的话)。我有点使用watchdog.py监视第一个文件夹。当' on_created' event fires我获取新添加的图像的文件路径并使用shutil.copy()将其复制到第二个文件夹,递增计数器并使用计数器值在复制时重命名图像(因此它变为文件夹/ 1.jpg )。当计数器达到4时,它将重置为0,并且最新的4个图像显示在网页上。所有这些文件夹都位于同一驱动器上的本地文件系统中。

我的问题是,有时似乎事件在图像完全保存在第一个文件夹之前触发(图像大约1Mb但略有不同,所以我无法检查文件大小)导致部分或损坏图像被复制到第二个文件夹。在最坏的情况下,它会抛出一个IOError,说该文件甚至不存在。

任何建议。我使用的是OSX 10.11,Python 2.7。图像都是Jpegs。

1 个答案:

答案 0 :(得分:1)

我看到多种解决方案:

  1. 首次在第一个文件夹中创建图像时,请为其名称添加后缀,例如filexxx.jpg.part,完全编写完成后再重命名,删除.part。 然后在您的看门狗中,请确保不要处理以.part
  2. 结尾的文件
  3. 在监视程序中,测试映像文件,就像尝试使用映像库加载文件一样,并捕获异常。