Kapag binabasa ni Python ang isang larawan sa pamamagitan ng PIL, nag-uulat ito ng isang error: OSError: hindi makilala ang file ng imahe
When Python Reads Picture Through Pil
Sanhi: Hindi nagawang isagawa ng operating system ang tinukoy na gawain (tulad ng pagbubukas ng isang file).
Narito ako upang maproseso ang isang malaking bilang ng mga imahe, subalit ang ilang mga imahe ay hindi mabubuksan, kaya't magaganap ang isang error sa OSError.
Ang solusyon: gamitin ang subukang tanggapin upang malutas ang pagbubukod na ito. Maaari mo ring tanggalin nang diretso ang larawang ito.
import os from PIL import Image import shutil '''train''' Path = '/Users/xuqiong/AgeGender/test_img_process/1_allface/valid/' # indicates the folder that needs to be named pathnew = '/Users/xuqiong/AgeGender/test_img_process/2_allcrop/valid/' Filelist = os.listdir(path) #Get the file path #cbox = [0,0,0,0] i = 0 for item in filelist: i = i + 1 if i%500 == 0: print(i) if item == '.DS_Store': continue imgpath = path+item imgpathnew = pathnew + item try: img = Image.open(imgpath) h = img.height w = img.width if (h > 5*w) or (w > 5*h): os.remove(imgpath) continue else: shutil.move(imgpath, imgpathnew) except(OSError, NameError): print('OSError, Path:',imgpath)