美文网首页软件测试职业探索Python_Study
几行Python代码轻松删除电脑中的重复图片

几行Python代码轻松删除电脑中的重复图片

作者: 小牛有财 | 来源:发表于2019-10-20 18:03 被阅读0次

    前言

    今天开始新的文集,将python学习中的点滴心得记录下来。这一篇讲一下如何用几行代码删除电脑中的重复图片。

    思路

    思路很简单,用内置的os.walk遍历图片目录,然后用第三方库hashlib对目录中的图片做md5计算,存入一个字典中,遇到字典中已存在的md5则删除该文件,达到去重复的目的。

    代码

    import hashlib, os
    # 先做一个函数计算文件的md5值
    def getMD5(path):
        md5 = hashlib.md5()
        with open(path, 'rb') as f:
            while True:
                block = f.read(8096)
                if not block:
                    break
                md5.update(block)
        return md5.hexdigest()
    
    def main():
        md5list = {}
        # 遍历图片目录c:\pic
        for root, dirs, files in os.walk('c:/pic', topdown=False):
            # 删除重复文件
            for file in files:
                fpath = os.path.join(root, file)
                md5 = getMD5(fpath)
                if md5 in md5list:
                    print('删除重复文件:', fpath)
                    os.remove(fpath)
                else:
                    md5list[md5] = fpath
    
    if __name__ == '__main__':
        main()
    

    效果

    计算md5是比较费时的事情,如果文件数量和尺寸很大,会花费一些时间。不过亲测10万张图片处理也就是十来分钟的事情,完全可以接受。对于有强迫症的我来,经常跑一下这个小脚本,顿时感觉清爽了许多,呵呵。

    相关文章

      网友评论

        本文标题:几行Python代码轻松删除电脑中的重复图片

        本文链接:https://www.haomeiwen.com/subject/eijamctx.html