OSError: cannot identify image file

我出现的问题是OSError: cannot identify image file <_io.BytesIO object at 0x7f02cad50780>,但是这个不能作为标题使用(找了半天原因)。

首先说一下为什么会出现OSError

操作系统不能执行指定的任务(如打开文件)时引发的,有多个子类。

我出现的原因是要处理大量的图片,然而有的图片无法打开,所以会出现OSError错误。解决办法是使用try accept解决这个异常。当然也可以直接将这个图片删除。不相信的话,可以做一下测试,这里面的00001.jpg是自己新建的一个文件

import tensorflow as tf
import io
from PIL import Image

img = tf.gfile.FastGFile('00001.jpg','rb')
encoded_jpg = img.read()
encoded_jpg_io = io.BytesIO(encoded_jpg)
image = Image.open(encoded_jpg_io)
height,width = image.size

                                                 附带一个python内置的异常类
Exception 几乎所有的异常类都是从它派生而来的
AttributeError 引用属性或给它赋值失败时引发
OSError    操作系统不能执行指定的任务(如打开文件)时引发,有多个子类
IndexError 使用序列中不存在的索引时引发,为LookupError的子类
KeyError 使用映射中不存在的键时引发,为LookupError的子类
NameError 找不到名称(变量)时引发
SyntaxError 代码不正确时引发
TypeError 将内置操作或函数用于类型不正确的对象时引发
ValueError 将内置操作或函数用于这样的对象时引发的:其类型正确但包含的值不合适
ZeroDivisionError     在除法或求模运算的第二个参数为零时引发


猜你喜欢

转载自blog.csdn.net/pursuit_zhangyu/article/details/80190707
今日推荐