关于UserWarning: Corrupt EXIF data. Expecting to read 4 bytes but only got 0. warnings.warn(str(msg))这种问题的解决办法


今天在跑毕业设计的时候遇到了一个棘手的问题。在打开图像的过程中

遇到了如图所示的warning

于是在网上进行查找解决办法。得知问题是读取的图片已经损坏,我们需要删除这个图片。

很很多帖子要么说捕捉异常,要么忽略这个warning。没有真正地解决问题

后来在stackvoerflow上看到一个帖子,有人给出了正确地做法,在信息来源处让这个warning抛出error,并用try方法地exception方法解决问题。

      except IOError as msg:
            warnings.warn(str(msg))
            return

改成

      except IOError as msg:
            raise ValueError('Corrupt Exif data')
            warnings.warn(str(msg))
            return
 
然后在代码中
def is_valid(file):
    valid = True
    try:
        Image.open(file).load()
    except Exception as e:
        valid = False
    return valid
用exception方法找到error,最后os.remove()这个图像。就成功把引出warning地图像删除了。
之后果然不再提示warning。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM