2016-05-04 25 views
0

にimghdrモジュールを使用する場合にこれが多くのフォルダに保存されたファイルのフォーマットを確認するために使用私のコードです:例外IOError Pythonの

check_image_format()

import imghdr as ih 

def check_image_format(image_dir): 
    for root, dirs, files in os.walk(image_dir): 
     for image in files: 
      format = ih.what(image) 
      if format != 'jpeg' or format != 'png': 
       return -1 
    return 0 

メイン()

def main(_): 
    # Check the correct format of images 
    ret = check_image_format('img_dir') 
    if(ret == -1): 
     print("Some images are not in the correct format. Please check") 

私のimg_dirは、他の3つのサブフォルダのルートディレクトリです。イメージを含む3つのサブフォルダ私はチェックしたい。 私はこのエラーを受信したプログラムを起動する場合:

IOError: [Errno 2] No such file or directory: img_1.jpg 

をしかし、ファイルが存在し、サブフォルダ内にあります。 このエラーの原因は何ですか?あなたの現在の画像のパスの絶対パスを構築する必要があり

答えて

1

import imghdr as ih 

def check_image_format(image_dir): 

    for root, dirs, files in os.walk(image_dir): 
     for image in files: 
      format = ih.what(os.path.join(root, image)) 
      if format != 'jpeg' or format != 'png': 
       return -1 
    return 0 
+0

おかげで、それが動作します!私は絶対パスの問題を忘れてしまった。 – Kyrol

関連する問題