使用Python+md5刪除本地重複(同一張不重名)的照片

github博客傳送門
csdn博客傳送門python

使用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(’點個贊吧’)
相關文章
相關標籤/搜索