美文网首页
用python删除重复的图片

用python删除重复的图片

作者: wsf535 | 来源:发表于2018-02-06 17:57 被阅读430次

    如下目录下有一些图片(来自12306的验证码)


    样例图

    我怎么把重复的图片删除呢?当然如果不多,比如下面几张,都是人为复制出来的,扫一眼就可以手动删除了,如果有10000张这样的图片并且命名没有规则呢?如下图:


    image.png

    那就用Python来帮我们做吧。

    思路:
    如果两个文件的大小不同,那么这两个文件肯定不同,如果两个文件大小相同并且MD5也相同则我们判定为两个文件相同

    # coding: utf-8
    import os
    import md5
    def getmd5(filename):
        file_txt = open(filename, 'rb').read()
        m = md5.new(file_txt)
        return m.hexdigest()
    def main():
        path = 'C:\\Users\\wu\\Desktop\\pic\\1\\'
        all_size = {}
        total_file = 0
        total_delete = 0
        for file in os.listdir(path):
            total_file += 1
            real_path = os.path.join(path, file)
            if os.path.isfile(real_path) == True:
                size = os.stat(real_path).st_size
                name_and_md5 = [real_path, '']
                if size in all_size.keys():
                    new_md5 = getmd5(real_path)
                    if all_size[size][1] == '':
                        all_size[size][1] = getmd5(all_size[size][0])
                    if new_md5 in all_size[size]:
                        os.remove(file)
                        print '删除', file
                        total_delete += 1
                    else:
                        all_size[size].append(new_md5)
                else:
                    all_size[size] = name_and_md5
        print '文件个数:', total_file
        print '删除个数:', total_delete
    if __name__ == '__main__':
        main()
    

    运行结果:删除的三张图是我手动复制增加的,与预期完全一样。

    运行结果

    参考 https://www.cnblogs.com/luolizhi/p/5591186.html

    相关文章

      网友评论

          本文标题:用python删除重复的图片

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