删除重复图片的软件,由论坛大神原创制作的一个由Python编写的删除重复图片程序,可以一键删除文件中重复的图片资源,为您的PC节省空间,同时整理你的图库。需要能删除重复图片的软件的朋友们可以下载使用,单文件程序,绿色无广告。

删除重复图片作者说明
今天闲来无事整理素材,发现有许多重复的图片,由于数量太多无法手动翻阅删除,想想写个代码,分析了一下重复图片有些是同名的,有些内容重复不同名,返回文件名清理放弃,图片大小也放弃放弃,后来选用计算MD5的方式清除,然后先是使用os.listdir()函数遍历文件夹下的图片,在测试过程中,如果文件夹下还包含文件夹就会引发异常,后来决定用os.walk()函数来遍历;
源码注释写的比较清晰,就不多阐述,可根据自己需要封装函数,制作成死循环,添加退出条件,复用;
Python代码一览
import os,hashlib
import numpy as np
from PIL import Image,UnidentifiedImageError
from PIL.Image import DecompressionBombError
from rich import print
from time import time
print("""[#00CED1]待清理的文件夹内如果还包含了文件夹也同样可以清理![/#00CED1][#0000FF]
@@@@@@@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@@@@ @@@ @@@ @@@ @@@@@@ @@@ @@@ @@@ @@@
@@@@@@@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@@@@@@ @@@ @@@ @@@ @@@@@@@@ @@@ @@@ @@@@ @@@
@@! @@! @@@ @@! @@@ @@! @@@ @@! @@@ @@! @@! @@@ @@! @@@ @@! @@! @@!@!@@@
!@! !@! @!@ !@! @!@ !@! @!@ !@! @!@ !@! !@! @!@ !@! @!@ !@! !@! !@!!@!@!
@!!!:! @!@ !@! @!@!@!@! @!@ !@! @!@!@!@! @!! @!@ !@! @!@ !@! !!@ !!@ @!@ !!@!
!!!!!: !@! !!! !!!@!!!! !@! !!! !!!@!!!! !!! !@! !!! !@! !!! !!! !!! !@! !!!
!!: !!: !!! !!: !!! !!: !!! !!: !!! !!: !!: !!! !!: !!! !!: !!: !!: !!!
:!: :!: !:! :!: !:! :!: !:! :!: !:! :!: :!: !:! :!: !:! !!: :!: :!: :!: !:!
:: ::::: :: :: ::: ::::: :: :: ::: :: :::: ::::: :: ::::: :: ::: : :: :: :: ::
: : : : : : : : : : : : : : :: : : : : : : : : : ::: : :: :
[/#0000FF] [#00CED1]待清理的文件夹内还包含文件夹也可清理![/#00CED1]""")
path = input(r"输入图片文件夹路径,例如 D:\python\tupian:")
try:
file = os.walk(path) # 遍历目录;
except FileNotFoundError: # 捕获路径不存在异常;
print('抱歉,没有这个路径!')
else:
temp = set() # 创建临时集合;
del_count = 0 # 删除图片计数;
pass_count = 0 # 非图片计数;
file_count = 0 # 总文件计数;
time1 = time()
for path_name, dir_name, file_name in file: # 遍历walk返回3个元素;
for n in file_name: # 获得每个文件名字;
full_path = os.path.join(path_name, n) # 拼接路径和文件名,获得文件完整路径;
file_count += 1 # 文件计数+1;
print(full_path)
try:
with Image.open(full_path) as t: # 打开图片;
array = np.array(t) # 转为数组;
except (UnidentifiedImageError,DecompressionBombError): # 捕获不是图片,像素炸弹异常;
pass_count += 1 # 非图片计数+1;
pass
else:
md5 = hashlib.md5() # 创建MD5对象;
md5.update(array) # 获取当前图片MD5;
if md5.hexdigest() not in temp: # 如果哈希值没有在集合中;
temp.add(md5.hexdigest()) # 就把哈希值添加到集合中;
else:
os.remove(full_path) # 如果在集合中就删除当前图片;
print(full_path+'------------------已删除')
del_count += 1 # 删除计数+1;
time2 = time()
time3 = time2-time1
if pass_count != 0:
print('[#7CFC00]非图片数据:[/#7CFC00][#800000]{0}[/#800000] 个.'.format(pass_count))
print('[#800080]一共读取图片:[/#800080][#800000]{0}[/#800000] 张.'.format(file_count - pass_count))
print('[#3CB371]删除重复图片:[/#3CB371][#800000]{0}[/#800000] 张.'.format(del_count))
print('[#0000FF]总耗时为:[/#0000FF][#800000]{:.4f}[/#800000] 秒.'.format(time3))
input('按任意键结束!!!') # 此条为了编译成EXE或在命令行运行脚本时能看见上面统计后数据所添加,如果在IDE中运行可删除;
exit() # 如果在IDE中运行可删除;























大小: 270.5M
Adobe Photoshop CS5v13.0官方简体中文版
Photoshop CS29.0 简体中文正式版
CorelDRAW X7简体中文正式版v25.0.0.17专业版
Adobe Photoshop CS310.0.1 官方中文正式原版
佳能数码单反相机软件(Digital Photo Professional)3.9 中文版
ACDsee9.0中文版
CAD迷你家装2022R1 官方版
光影魔术手20174.4.1.304 官方正式版
彩视相册制作软件v1.0 官方安装版
GIF图像编辑器(Namo GIF)中文免费版
StarUML UML工具5.0.2 汉化绿色版
Adobe Illustrator CC 20152015.2.1 中文精简版
美图秀秀6.3.3.1 去广告绿色版
批量修改图片大小工具Mytoolsoft Image ResizerV2.4 汉化绿色版
Adobe Photoshop CC 2017v18.0.0 官方简体中文版
Adobe Illustrator CS5Ansifa 精简绿色中文版
抠图工具(Picture Cutout Guide)V3.2.9 中文破解版