關於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