MENU

Python图片去重

• 2020 年 01 月 27 日 • 阅读: 799 • Python

python对文件夹下的照片查找并删除重复的照片

针对图片上传的安卓项目,对其上传到后台重复上传同样的照片进行处理

通过文件的MD5值进行去重

# -*- coding:utf-8 -*-
# 将代码文件放到,要删除重复的文件或图片所包含的目录中运行
import os
import hashlib

# 设置文件目录
fileDir = './'

def fileDeduplication(DIR):
    fileDeduplication = len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
    return (fileDeduplication)

def md5Sum(fileName):
    f = open(fileDir+'/'+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 = {}
    dir = os.walk(fileDir)
    for i in dir:
        for tlie in i[2]:
            if md5Sum(tlie) in all_md5.values():
                os.remove(fileDir+'/'+tlie)
                print(tlie)
            else:
                all_md5[tlie] = md5Sum(tlie)

if __name__ == '__main__':
    numberOfFiles = fileDeduplication(fileDir)
    print('\n*********去重前共有多少文件***********\n')
    print('【', numberOfFiles, '】个文件')
    print('\n**************结束分割线************************\n\n')

    print('\n*********删除重复文件***********\n')
    print('请稍等\n正在删除重复文件...\n')
    delFile()
    print('\n**************结束分割线************************\n\n')

    print('\n\n*********去重后剩多少文件***********\n')
    print('【', fileDeduplication(fileDir), '】个文件')
    print('\n**************结束分割线************************\n\n')

    print('\n\n*********统计共删除多少文件***********\n')
    print('【', numberOfFiles - fileDeduplication(fileDir), '】个文件')
    print('\n**************结束分割线************************\n\n')

运行结果

*********去重前共有多少文件***********

【 61 】个文件

**************结束分割线************************



*********删除重复文件***********

请稍等
正在删除重复文件...


**************结束分割线************************




*********去重后剩多少文件***********

【 61 】个文件

**************结束分割线************************




*********统计共删除多少文件***********

【 0 】个文件

**************结束分割线************************

image去重(下载后将后缀.txt去掉即可)

最后编辑于: 2021 年 05 月 13 日
返回文章列表 文章二维码
本页链接的二维码
打赏二维码