解决方案
第一种、删除截断图片
第二种、添加两行代码,如下
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
错误原因
首先看一下错误信息,大致意思是图像文件是损坏的,无法读取,后面37个bytes无法处理
OSError: image file is truncated (37 bytes not processed)
第一次运行程序时没有发生这样的错误,后面觉得图像文件的命名很杂乱,于是就写了一个重命名程序,对文件夹里的数据进行重新命名,程序如下所示
import os
path = './data/train/Image/'
# 获取该目录下所有文件,存入列表中
f = os.listdir(path)
n = 0
for i in f:
# 设置旧文件名(就是路径+文件名)
oldname = path + f[n]
# 设置新文件名
newname = path + 'Image_' + str(n + 1) + '.JPG'
# 用os模块中的rename方法对文件改名
os.rename(oldname, newname)
print(oldname, '======>', newname)
n +=<