使用Python+md5删除本地重复(同一张不重名)的照片

时间:2024-04-16 10:35:59

github博客传送门
****博客传送门

使用md5删除重复文件思路和本帖一样

首先遍历需要去重文件夹下的所有文件

然后生成每个文件md5码的同时 和集合中的md5码比较

如md5码不存在,则进行保存.如存在,则不进行保存

最后保存路径的文件 则是不重复的文件

import hashlib
import os
from PIL import Image
import numpy as np


files_path = "这里输入你要去重的文件夹路径.."
save_files_path = "这里输入你去重后保存文件的路径..."
files = os.listdir(files_path)  # 遍历文件夹下的所有文件

temp = set()  # 创建一个set()
count = 0  # 删除的文件计数
for file in files:
    file_path = files_path + file  # 获得完整的路径
    img = Image.open(file_path)  # 打开图片
    img_array = np.array(img)  # 转为数组
    md5 = hashlib.md5()  # 创建一个hash对象
    md5.update(img_array)  # 获得当前文件的md5码
    if md5.hexdigest() not in temp:  # 如果当前的md5码不在集合中
        temp.add(md5.hexdigest())  # 则添加当前md5码到集合中
        img.save(save_files_path + file)  # 并保存当前图片到保存文件的路径
    else:
        count += 1  # 否则删除图片数加一

print("duplicate removal:", count)  # 最后输出删除图片的总数

print_r(\'点个赞吧\');
var_dump(\'点个赞吧\');
NSLog(@"点个赞吧!")
System.out.println("点个赞吧!");
console.log("点个赞吧!");
print("点个赞吧!");
printf("点个赞吧!\n");
cout << "点个赞吧!" << endl;
Console.WriteLine("点个赞吧!");
fmt.Println("点个赞吧!")
Response.Write("点个赞吧");
alert(’点个赞吧’)