本文實(shí)例講述了Python實(shí)現(xiàn)的刪除重復(fù)文件或圖片功能。分享給大家供大家參考,具體如下:
通過python爬蟲或其他方式保存的圖片文件通常包含一些重復(fù)的圖片或文件,
通過下面的python代碼可以將重復(fù)的文件刪除以達(dá)到去重的目的。其中,文件目錄結(jié)構(gòu)如下圖:
# /usr/bin/env python # -*- coding:utf-8 -*- # 運(yùn)行的代碼文件要放到刪除重復(fù)的文件或圖片所包含的目錄中 import os import hashlib def filecount(): filecount = int(os.popen('dir /B |find /V /C ""').read()) return (filecount) def md5sum(filename): f = open(filename, 'rb') md5 = hashlib.md5() while True: fb = f.read(8096) if not fb: break md5.update(fb) f.close() return (md5.hexdigest()) def delfile(): all_md5 = {} filedir = os.walk(os.getcwd()) for i in filedir: for tlie in i[2]: if md5sum(tlie) in all_md5.values(): os.remove(tlie) else: all_md5[tlie] = md5sum(tlie) if __name__ == '__main__': oldf = filecount() print('去重前有', oldf, '個(gè)文件\n\n\n請(qǐng)稍等正在刪除重復(fù)文件...') delfile() print('\n\n去重后剩', filecount(), '個(gè)文件') print('\n\n一共刪除了', oldf - filecount(), '個(gè)文件\n\n')