python删除文件夹下相同文件和无法打开的图片


Posted in Python onJuly 16, 2019

前天不小心把硬盘格式化了,丢了好多照片,后来用Recuva这款软件成功把文件恢复过来,可是恢复的文件中有好多重复的文件和无法打开的图片,所以写了两个python的小程序用来解决这个问题

删除相同文件:

#coding=utf-8
 
import os
import os.path
import Image
import hashlib
 
def get_md5(filename):
 m = hashlib.md5()
 mfile = open(filename, "rb")
 m.update(mfile.read())
 mfile.close()
 md5_value = m.hexdigest()
 return md5_value
 
if __name__ == '__main__':
 ipath = "E:\\20161019_photo"
 uipath = unicode(ipath, "utf8")
 
 for parent, dirnames, filenames in os.walk(uipath):
  md5_list = []
  #for dirname in dirnames: # 输出文件夹信息
   #print "parent is:" + parent
   #print "dirname is: " + dirname
  for filename in filenames:
   #print "parent is :" + parent
   #print "filename is:" + filename
   #print "md5_list is : "
 
   if(get_md5(os.path.join(parent, filename)) in md5_list):
    os.remove(os.path.join(parent, filename))
   else:
    md5_list.append(get_md5(os.path.join(parent, filename)))
   #print md5_list
   #md5 = []

删除无法打开文件:

#coding=utf-8
 
import os
import os.path
import Image
import hashlib
 
def get_md5(filename):
 m = hashlib.md5()
 mfile = open(filename, "rb")
 m.update(mfile.read())
 mfile.close()
 md5_value = m.hexdigest()
 return md5_value
 
if __name__ == '__main__':
 ipath = "E:\\20161019_photo"
 uipath = unicode(ipath, "utf8")
 for parent, dirnames, filenames in os.walk(uipath):
  for filename in filenames:
   name ,ext = os.path.splitext(filename)
   if((ext == ".png") or (ext == ".tif") or (ext == ".gif")):
    os.remove(os.path.join(parent, filename))
   else:
    if(ext == ".jpg"):
     try:
      fp = open(os.path.join(parent, filename), 'rb')
      img = Image.open(fp)
     except:
      fp.close()
      os.remove(os.path.join(parent, filename))
     else:
      continue

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
利用Python的Django框架中的ORM建立查询API
Apr 20 Python
Python实现栈的方法
May 26 Python
Python argv用法详解
Jan 08 Python
使用python3.5仿微软记事本notepad
Jun 15 Python
python一键升级所有pip package的方法
Jan 16 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
May 16 Python
Python实现爬虫爬取NBA数据功能示例
May 28 Python
linux安装python修改默认python版本方法
Mar 31 Python
如何使用python操作vmware
Jul 27 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 Python
python使用列表的最佳方案
Aug 12 Python
基于Python实现将列表数据生成折线图
Mar 23 Python
Python split() 函数拆分字符串将字符串转化为列的方法
Jul 16 #Python
python实现字符串完美拆分split()的方法
Jul 16 #Python
python如何删除文件中重复的字段
Jul 16 #Python
python字符串切割:str.split()与re.split()的对比分析
Jul 16 #Python
Python使用正则表达式分割字符串的实现方法
Jul 16 #Python
Python Django切换MySQL数据库实例详解
Jul 16 #Python
Python二维码生成识别实例详解
Jul 16 #Python
You might like
PHP 实例化类的一点摘记
2008/03/23 PHP
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
PHP基于工厂模式实现的计算器实例
2015/07/16 PHP
jquery 操作DOM的基本用法分享
2012/04/05 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
浅析Cookie中的Path与domain
2013/12/18 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
2014/09/19 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
jqGrid表格应用之新增与删除数据附源码下载
2015/12/02 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
JavaScript获取select中text值的方法
2017/02/13 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
vue.js 使用axios实现下载功能的示例
2018/03/05 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
详解如何利用Cython为Python代码加速
2018/01/27 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
python自动生成model文件过程详解
2019/11/02 Python
解决Python二维数组赋值问题
2019/11/28 Python
python等待10秒执行下一命令的方法
2020/07/19 Python
python操作redis数据库的三种方法
2020/09/10 Python
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
前端使用canvas生成盲水印的加密解密的实现
2020/12/16 HTML / CSS
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
美国婴儿和儿童服装购物网站:PatPat
2020/10/01 全球购物
2014年宣传部个人工作总结
2014/12/06 职场文书
文言文辞职信
2015/02/28 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
户外拓展训练感想
2015/08/07 职场文书
话题作文之生命的旋律
2019/12/17 职场文书
JS中一些高效的魔法运算符总结
2021/05/06 Javascript
分享7个 Python 实战项目练习
2022/03/03 Python
Java 数据结构七大排序使用分析
2022/04/02 Java/Android