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类的实例化问题解决

    python类的实例化问题解决

    这篇文章主要介绍了python类的实例化问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python二叉树的镜像转换实现方法示例

    Python二叉树的镜像转换实现方法示例

    这篇文章主要介绍了Python二叉树的镜像转换实现方法,结合实例形式分析了二叉树镜像转换的原理及Python相关算法实现技巧,需要的朋友可以参考下
    2019-03-03
  • Python合并同一个文件夹下所有PDF文件的方法

    Python合并同一个文件夹下所有PDF文件的方法

    今天小编就为大家分享一篇关于Python合并同一个文件夹下所有PDF文件的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Python中的random()方法的使用介绍

    Python中的random()方法的使用介绍

    这篇文章主要介绍了Python中的random()方法的使用,是Python入门的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python自动发邮件脚本

    Python自动发邮件脚本

    本文主要介绍了Python自动发邮件脚本的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-03-03
  • python中利用await关键字如何等待Future对象完成详解

    python中利用await关键字如何等待Future对象完成详解

    为了简化并更好地标识异步IO,从Python 3.5开始引入了新的语法async和await,可以让coroutine的代码更简洁易读。下面这篇文章主要给大家介绍了关于python中利用await关键字如何等待Future对象完成的相关资料,需要的朋友可以参考下。
    2017-09-09
  • Python类的继承、多态及获取对象信息操作详解

    Python类的继承、多态及获取对象信息操作详解

    这篇文章主要介绍了Python类的继承、多态及获取对象信息操作,结合实例形式较为详细的分析了Python面向对象程序设计中类、继承、多态等相关操作技巧与注意事项,需要的朋友可以参考下
    2019-02-02
  • Python中的装饰器用法详解

    Python中的装饰器用法详解

    这篇文章主要介绍了Python中的装饰器用法,以实例形式详细的分析了Python中的装饰器的使用技巧及相关注意事项,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • python局域网ip扫描示例分享

    python局域网ip扫描示例分享

    这篇文章主要介绍了python局域网ip扫描示例,需要的朋友可以参考下
    2014-04-04
  • Unicode和Python的中文处理

    Unicode和Python的中文处理

    在Python语言中,Uincode字符串处理一直是一个容易让人迷惑的问题。许多Python爱好者经常因为搞不清Unicode、UTF-8还有其它许许多多的编码之间的区别而大伤脑筋。本文将介绍Unicode和Python的中文处理的相关知识。下面跟着小编一起来看下吧
    2017-03-03

最新评论