2017-10-20 18 views
0

J'ai écrit un script python pour détecter les images brisées et les compter, Le problème dans mon script est qu'il détecte toutes les images et ne détecte pas les images brisées. Comment régler ceci. Je refered:Python Script pour détecter les images brisées

How to check if a file is a valid image file? pour mon code

Mon code

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) 

Répondre

1

Vous construisez un mauvais chemin avec

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

Essayez les options suivantes au lieu

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

ou

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

Cela m'a aidé à spécifier le chemin, cependant, je ne reçois aucun mauvais fichier en sortie. J'ai ajouté de mauvais fichiers dans le dossier 2 pour vérifier que (par mauvais fichier je veux dire les fichiers qui ont l'extension .jpg mais ne peuvent pas être ouverts sur le PC) –

+0

Que voulez-vous dire par "ne peut pas être ouvert"? Si je copie un fichier python et lui donne une extension .jpg quand il est coché, j'obtiens "impossible d'identifier le fichier image" si j'imprime l'exception. Pouvez-vous essayer cela? –

+0

Merci de ne pas pouvoir ouvrir Je veux dire ce qui suit "Le fichier 2-10580.jpg n'a pas pu être ouvert: Il peut être endommagé ou utiliser un format de fichier que Preview ne reconnaît pas.". J'ai découvert l'erreur: Je sauvais le fichier avec l'extension .jpg mais en python, j'ai filename.ends ('. JPG') (toutes les majuscules). Votre solution a résolu le problème que je serais très reconnaissant si vous pouviez me faire savoir comment autoconvertir l'extension capital .JPG en petite extension .jpg dans le dossier 2 en utilisant le script python –