2017-10-20 218 views
0

我寫了一個python腳本檢測損壞的圖像並計數, 在我的腳本的問題是它檢測到的所有圖像和不檢測破碎的形象。如何解決這個問題。我refered:Python腳本檢測破碎的形象

How to check if a file is a valid image file?爲我的代碼

我的代碼

import os 
from os import listdir 
from PIL import Image 
count=0 
for filename in os.listdir('/Users/ajinkyabobade/Desktop/2'): 
    if filename.endswith('.JPG'): 
    try: 
     img=Image.open('/Users/ajinkyabobade/Desktop/2'+filename) 
     img.verify() 
    except(IOError,SyntaxError)as e: 
     print('Bad file : '+filename) 
     count=count+1 
     print(count) 

回答

1

你需要建立與

img=Image.open('/Users/ajinkyabobade/Desktop/2'+filename)  

不好的路徑嘗試以下,而不是

img=Image.open('/Users/ajinkyabobade/Desktop/2/'+filename)  

img=Image.open(os.path.join('/Users/ajinkyabobade/Desktop/2', filename)) 
+0

這幫助我指定路徑,但是,我沒有在輸出中得到任何不良文件。我已經加入壞文件到文件夾2,以檢查(由壞文件我的意思是它具有擴展名爲.jpg,但不能在電腦上打開的文件) –

+0

你說的「不能打開」呢?如果我複製一個python文件,並在檢查時給它一個.jpg擴展名,如果我打印出這個異常,就會得到「無法識別圖像文件」。你可以試試嗎? –

+0

謝謝您不能打開我的意思是下面的「文件2-10580.jpg無法打開:它可能會被損壞或使用預覽無法識別的文件格式。」我發現了錯誤:我用擴展名.jpg保存文件,但在python中,我有filename.ends('。JPG')(全部大寫)。您的解決方案解決了我高度讚賞問題,如果你可以讓我知道了如何使用Python腳本 –