2017-10-20 151 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脚本 –