現在Pythonを学習中の者です。フォルダ内の写真の重複を見つけて削除するプログラムを書いているのですが、以下のようなエラーを吐かれました。
line 13: if hash in hash_dict:
SyntaxError: invalid syntax
該当部分は、フォルダ内のファイルを1つずつハッシュ化してから辞書型配列に格納。それをすべてのファイルに順に適応していき、もし同じハッシュ値になったら該当ファイルを削除するというものです。
なぜエラーになるのかわかりません。構文は間違っていないと思うのですが、何卒ご教授よろしくお願いいたします。
P.S.
上記の探索以上に効率的なアルゴリズムをご存じでしたら、合わせてご教授頂けると幸いです。
以下はソースコード全体です。
import os import imagehash from PIL import Image def remove_file(file_pass): os.remove(file_pass) def create_hash_dict(img_folder): # function of convert the picture to hash hash_dict = {} for file in os.listdir(img_folder): hash = imagehash.phash(Image.open(img_folder + file) if hash in hash_dict: remove_file(img_folder + file) else: hash_dict[hash] = True if __name__ == '__main__': img_folder = "img/" create_hash_dict(img_folder)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/12 15:17