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的内存泄漏及gc模块的使用分析
Jul 16 Python
遗传算法python版
Mar 19 Python
python中找出numpy array数组的最值及其索引方法
Apr 17 Python
python3中获取文件当前绝对路径的两种方法
Apr 26 Python
python根据list重命名文件夹里的所有文件实例
Oct 25 Python
Python 进程之间共享数据(全局变量)的方法
Jul 16 Python
Python Pillow.Image 图像保存和参数选择方式
Jan 09 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
Mar 25 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
Jan 06 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 09 Python
Python re.sub 反向引用的实现
Jul 07 Python
Python+Tkinter制作专属图形化界面
Apr 01 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 flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
PHP实现二维数组去重功能示例
2017/01/12 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
PHP copy函数使用案例代码解析
2020/09/01 PHP
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
jquery利用拖拽方式在图片上添加热链接
2015/11/24 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
基于vue.js实现的分页
2018/03/13 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
对angularJs中controller控制器scope父子集作用域的实例讲解
2018/10/08 Javascript
解决layer.confirm选择完之后消息框不消失的问题
2019/09/16 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
2020/11/11 Javascript
javascript实现放大镜功能
2020/12/09 Javascript
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
django认证系统实现自定义权限管理的方法
2019/08/28 Python
Python实现手绘图效果实例分享
2020/07/22 Python
HTML5页面音视频在微信和app下自动播放的实现方法
2016/10/20 HTML / CSS
汽车队司机先进事迹材料
2014/02/01 职场文书
美术教师岗位职责
2014/03/18 职场文书
股权转让意向书
2014/04/01 职场文书
公开承诺书格式
2014/05/21 职场文书
水污染治理工程专业自荐信
2014/06/21 职场文书
安全责任书模板
2014/07/22 职场文书
单方投资意向书
2015/05/11 职场文书
python使用BeautifulSoup 解析HTML
2022/04/24 Python
mybatis 获取更新记录的id
2022/05/20 Java/Android