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入门篇之字符串
Oct 17 Python
对于Python的Django框架部署的一些建议
Apr 09 Python
python3音乐播放器简单实现代码
Apr 20 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
python 对类的成员函数开启线程的方法
Jan 22 Python
django之自定义软删除Model的方法
Aug 14 Python
python实现银行实战系统
Feb 26 Python
Python调用百度OCR实现图片文字识别的示例代码
Jul 17 Python
python实现画图工具
Aug 27 Python
Python编程中内置的NotImplemented类型的用法
Mar 23 Python
python解析json数据
Apr 29 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
Extended CHM PHP 语法手册之 DIY
2006/10/09 PHP
php连接数据库代码应用分析
2011/05/29 PHP
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
PHP json_encode中文乱码问题的解决办法
2013/09/09 PHP
php+mysqli使用预处理技术进行数据库查询的方法
2015/01/28 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
Mootools 1.2教程 类(一)
2009/09/15 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
页面内容排序插件jSort使用方法
2015/10/10 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
大白话讲解JavaScript的Promise
2017/04/06 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
React Native实现地址挑选器功能
2017/10/24 Javascript
Node.js实现发送邮件功能
2017/11/06 Javascript
JavaScript的setter与getter方法
2017/11/29 Javascript
原生JS实现手动轮播图效果实例代码
2018/11/22 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
编写Python脚本使得web页面上的代码高亮显示
2015/04/24 Python
通过数据库向Django模型添加字段的示例
2015/07/21 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
django 多数据库配置教程
2018/05/30 Python
python3 对list中每个元素进行处理的方法
2018/06/29 Python
使用python批量修改文件名的方法(视频合并时)
2020/03/24 Python
python实现字典嵌套列表取值
2019/12/16 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
外科实习自我鉴定
2013/10/06 职场文书
教师求职推荐信范文
2013/11/20 职场文书
大学学生个人总结
2015/02/15 职场文书
python实现MD5进行文件去重的示例代码
2021/07/09 Python