python删除文件夹里损坏的图片

Posted _刘文凯_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python删除文件夹里损坏的图片相关的知识,希望对你有一定的参考价值。

今天学习pytoch时发现有好多图片损坏了

报错如下:
PIL.UnidentifiedImageError: cannot identify image file <_io.BufferedReader name=’./train\\cat\\052cat.jpg’>

原因

图片没有被正确的下载

解决

写个小程序把所有损坏的图片都删除

import cv2
import os
import numpy as np
fn_all = './test/cat/'
for fn in os.listdir(fn_all):
    img = cv2.imread(fn_all + fn)
    if type(img) != type(np.array([1])):
        os.remove(fn_all + fn)

小程序改进:

import cv2
import os
import numpy as np
fn_all = ['./val/','./train/','./test/']
for fn_a in fn_all:
  for fn in os.walk(fn_n):
    if fn[-1] != []:
        for i in fn[-1]:
            img_f = fn[0] +'/'+ i
            if type(cv2.imread(img_f)) != type(np.array([1])):
                os.remove(img_f)

以上是关于python删除文件夹里损坏的图片的主要内容,如果未能解决你的问题,请参考以下文章

我的内存卡里的图片打开时“windows照片查看器无法打开此图片,因为此文件可能已损坏、损毁过大”怎样恢复

检查图片是否损坏图片后缀是否与实际图片类型对应 - Python

Logstash无法读取文件的更新内容

python 批量删除重复图片和其xml文件

安转python3.8.5是出现图片里问题是要怎么解决?

windows照片查看器无法打开此图片,因为此文件可能已损坏、损毁或过大