写在前面:删除的不完全精确,但是在可以接受的范围内,有误删的情况。所以,删之前,要备份!!!!windows下可用,linux修改文件夹即可!
安装包 pip install Pillow imagehash
代码
import os
from PIL import Image
import imagehashdef find_and_remove_duplicates(image_folder):seen_hashes = set()# 遍历文件夹中的所有文件for filename in os.listdir(image_folder):file_path = os.path.join(image_folder, filename)# 确保是文件并且是图像if os.path.isfile(file_path):try:# 打开图像并计算哈希值(使用 perceptual hash)img = Image.open(file_path)hash_value = imagehash.phash(img)# 检查哈希值是否已经存在if hash_value in seen_hashes:# 如果存在,删除该文件os.remove(file_path)print(f"删除重复文件: {file_path}")else:# 如果不存在,添加到集合中seen_hashes.add(hash_value)except Exception as e:print(f"处理文件 {file_path} 时发生错误: {e}")# 指定要检查重复的文件夹
image_folder = r"E:\delete"
find_and_remove_duplicates(image_folder)