我在这里回复有点晚,但是我遇到了类似的问题,我想分享我的解决方案。首先,这是此问题的非常典型的堆栈跟踪:
Traceback (most recent call last): ... File ..., line 2064, in ... im.thumbnail(DEFAULT_THUMBNAIL_SIZE, Image.ANTIALIAS) File "/Library/Python/2.7/site-packages/PIL/Image.py", line 1572, in thumbnail self.load() File "/Library/Python/2.7/site-packages/PIL/ImageFile.py", line 220, in load raise IOError("image file is truncated (%d bytes not processed)" % len(b))IOError: image file is truncated (57 bytes not processed)
如果我们看一下第220行(在您的情况下是第201行,也许您正在运行的版本稍有不同),我们会看到PIL正在读取文件的块,并且它期望这些块将具有一定的大小。事实证明,您可以通过更改设置来请求PIL容忍被截断的文件(该块中缺少某些文件)。
在代码块之前的某个位置,只需添加以下内容:
from PIL import ImageFileImageFile.LOAD_TRUNCATED_IMAGES = True
…你应该很好。
编辑:看起来这对与Pillow捆绑在一起的PIL版本有所帮助(“ pip安装枕头”),但可能不适用于PIL的默认安装