• 技术文章 >Python技术 >Python基础教程

    python如何判断文件夹内的重复图片

    小妮浅浅小妮浅浅2021-08-04 10:17:27原创6298

    步骤

    1、首先将所有的图片按照图片大小(byte)进行分类,然后再进行分类比较。

    2、重复图片很有可能连续出现(因为重复图片大小相同)

    如果要判断文件夹中是否有相同的图片,则需要对文件夹中的所有图片进行分类,并逐一判断两张图片是否相同。

    如果文件夹中有1000张图片,则第一张图片需要与剩余的999张图片进行比较,第二张图片需要与剩余的998张图片进行比较,第三张图片需要与剩余的997张图片进行比较,以此类推。

    实例

    if __name__ == '__main__':
     
        load_path = 'E:\\测试图片集(未去重)'  # 要去重的文件夹
        save_path = 'E:\\测试图片集(重复照片)'  # 空文件夹,用于存储检测到的重复的照片
        os.makedirs(save_path, exist_ok=True)
     
        # 获取图片列表 file_map,字典{文件路径filename : 文件大小image_size}
        file_map = {}
        image_size = 0
        # 遍历filePath下的文件、文件夹(包括子目录)
        for parent, dirnames, filenames in os.walk(load_path):
            # for dirname in dirnames:
            # print('parent is %s, dirname is %s' % (parent, dirname))
            for filename in filenames:
                # print('parent is %s, filename is %s' % (parent, filename))
                # print('the full name of the file is %s' % os.path.join(parent, filename))
                image_size = os.path.getsize(os.path.join(parent, filename))
                file_map.setdefault(os.path.join(parent, filename), image_size)
     
        # 获取的图片列表按 文件大小image_size 排序
        file_map = sorted(file_map.items(), key=lambda d: d[1], reverse=False)
        file_list = []
        for filename, image_size in file_map:
            file_list.append(filename)
     
        # 取出重复的图片
        file_repeat = []
        for currIndex, filename in enumerate(file_list):
            dir_image1 = file_list[currIndex]
            dir_image2 = file_list[currIndex + 1]
            result = 比较两张图片是否相同(dir_image1, dir_image2)
            if(result == "两张图相同"):
                file_repeat.append(file_list[currIndex + 1])
                print("\n相同的图片:", file_list[currIndex], file_list[currIndex + 1])
            else:
                print('\n不同的图片:', file_list[currIndex], file_list[currIndex + 1])
            currIndex += 1
            if currIndex >= len(file_list)-1:
                break
     
        # 将重复的图片移动到新的文件夹,实现对原文件夹降重
        for image in file_repeat:
            shutil.move(image, save_path)
            print("正在移除重复照片:", image)

    以上就是python判断文件夹内的重复图片的方法,希望对大家有所帮助。更多Python学习指路:python基础教程

    本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

    专题推荐:python文件夹
    上一篇:python决策树算法的实现步骤 下一篇:python一行输出10个数

    相关文章推荐

    • 在linux下怎么打开python文件• mac怎么执行python文件?• 如何把python文件做成exe文件• python文件如何形成安装包?• 怎么用vs编python文件• python文件打包为exe提示找不到路径是什么原因?• python文件操作需要导入模块吗• python文件为什么加utf-8• python文件新建之后怎么执行• 如何设置python文件默认使用spyder打开• pycharm怎么运行python文件• 如何直接运行某个python文件• python文件运行后被自动退出怎么办?• python文件打开闪退要怎么处理?• Python文件路径是什么?怎么写?• python文件路径的操作• python文件路径的组成• python文件导入相对路径• python文件的读取和写入• python文件拆分与合并的方法• python文件的三大访问方式

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网