引言
本文解释如何编写python脚本,实现重复图片清理的功能。
正文
MD5,Message-Digest Algorithm,信息摘要算法,是一种信息加密算法,可以把任意长度的数据转换为一个长度固定的数据串(通常是16进制的字符串表示)。
一个图片文本的本质是一个数据串,所以要想清理重复图片,就是要匹配到相同的数据串的两张图片,使用DM5的目的是将图片的数据串统一,如果两张图片经过MD5算法变换后的数据串相同,
则可判断这两种图片重复。
以计算一个字符串的MD5值为例,代码如下:
1 | import hashlib |
计算结果为
1 | d26a53750bc40b38b65a520292f69306 |
参考网站:廖雪峰老师博客中摘要算法简介
本文的脚本的思路如下:
1 遍历文件夹下的图片文件
2 把图片文件记录到一个字典变量中
3 生成所有图片文件的MD5值
4 把MD5值存放到一个新的字典变量中
5 判断如果已经存放,则该图片为重复图片,删除即可
选取文件夹,遍历文件夹下所有的文件
1 | inpath = "G:/最新/照片/2018-2019年照片备份/2021年" |
获取MD5值
1 | fd = open(file,'rb') |
根据MD5值比较
1 | for photo in allfile: |
删除重复照片
1 | for idenPhoto in identicallist: |
总结
完整代码放在了Github上,如果读者有兴趣,不妨试一试。