Python实现的删除重复文件或图片功能示例【去重】

 更新时间:2019年04月23日 10:36:33   作者:loveliuzz  
这篇文章主要介绍了Python实现的删除重复文件或图片功能,结合实例形式分析了Python基于os与hashlib模块针对文件的读取、hash计算及重复性判定等相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python实现的删除重复文件或图片功能。分享给大家供大家参考,具体如下:

通过python爬虫或其他方式保存的图片文件通常包含一些重复的图片或文件,

通过下面的python代码可以将重复的文件删除以达到去重的目的。其中,文件目录结构如下图:

# /usr/bin/env python
# -*- coding:utf-8 -*-
# 运行的代码文件要放到删除重复的文件或图片所包含的目录中
import os
import hashlib
def filecount():
  filecount = int(os.popen('dir /B |find /V /C ""').read())
  return (filecount)
def md5sum(filename):
  f = open(filename, 'rb')
  md5 = hashlib.md5()
  while True:
    fb = f.read(8096)
    if not fb:
      break
    md5.update(fb)
  f.close()
  return (md5.hexdigest())
def delfile():
  all_md5 = {}
  filedir = os.walk(os.getcwd())
  for i in filedir:
    for tlie in i[2]:
      if md5sum(tlie) in all_md5.values():
        os.remove(tlie)
      else:
        all_md5[tlie] = md5sum(tlie)
if __name__ == '__main__':
  oldf = filecount()
  print('去重前有', oldf, '个文件\n\n\n请稍等正在删除重复文件...')
  delfile()
  print('\n\n去重后剩', filecount(), '个文件')
  print('\n\n一共删除了', oldf - filecount(), '个文件\n\n')

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解

    Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解

    这篇文章主要介绍了Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解,需要的朋友可以参考下
    2020-02-02
  • Pandas之to_sql()插入数据到mysql中所遇到的问题及解决

    Pandas之to_sql()插入数据到mysql中所遇到的问题及解决

    这篇文章主要介绍了Pandas之to_sql()插入数据到mysql中所遇到的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Python实现一个自助取数查询工具

    Python实现一个自助取数查询工具

    在数据生产应用部门,取数分析是一个很常见的需求,实际上业务人员需求时刻变化,最高效的方式是让业务部门自己来取,减少不必要的重复劳动,本文介绍如何用Python实现一个自助取数查询工具
    2021-06-06
  • python检查指定文件是否存在的方法

    python检查指定文件是否存在的方法

    这篇文章主要介绍了python检查指定文件是否存在的方法,涉及Python基于os模块判定文件的相关技巧,非常简单实用,需要的朋友可以参考下
    2015-07-07
  • Python生成器与迭代器详情

    Python生成器与迭代器详情

    这篇文章主要介绍了Python生成器与迭代器,现在可以通过生成器来直接创建一个列表,是由于内存的限制,表的容量肯定是有限的,果我们需要一个包含几百个元素的列表,是每次访问的时候只访问其中的几个,剩下的元素不使用就很浪费内存空间,下面来了解具体内容
    2021-11-11
  • Python 邮箱登录验证码功能实现代码

    Python 邮箱登录验证码功能实现代码

    本文介绍了结合前端校验和后端Redis缓存策略实现邮箱登录的功能,旨在提高安全性和效率,前端校验邮箱格式,后端生成并发送验证码,使用Redis缓存验证码以提高效率和安全性,感兴趣的朋友一起看看吧
    2024-12-12
  • Python抓包并解析json爬虫的完整实例代码

    Python抓包并解析json爬虫的完整实例代码

    这篇文章主要给大家介绍了关于Python抓包并解析json爬虫的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python调用百度OCR实现图片文字识别的示例代码

    Python调用百度OCR实现图片文字识别的示例代码

    这篇文章主要介绍了Python调用百度OCR实现图片文字识别的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Python利用cv2动态绘制圆和矩形的示例详解

    Python利用cv2动态绘制圆和矩形的示例详解

    这篇文章主要为大家详细介绍了Python如何利用cv2实现动态绘制圆和矩形的功能,文中的示例代码讲解详细,具有一定的参考价值,需要的可以参考一下
    2023-03-03
  • matplotlib之属性组合包(cycler)的使用

    matplotlib之属性组合包(cycler)的使用

    这篇文章主要介绍了matplotlib之属性组合包(cycler)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02

最新评论