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 相关文章推荐
win7安装python生成随机数代码分享
Dec 27 Python
python中的装饰器详解
Apr 13 Python
pycharm安装图文教程
May 02 Python
多版本Python共存的配置方法
May 22 Python
Python正确重载运算符的方法示例详解
Aug 27 Python
python多进程控制学习小结
Oct 31 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
linux下安装python3和对应的pip环境教程详解
Jul 01 Python
详解Python用三种方式统计词频的方法
Jul 29 Python
pytorch sampler对数据进行采样的实现
Dec 31 Python
python中return不返回值的问题解析
Jul 22 Python
Python之基础函数案例详解
Aug 30 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知道与问问的采集插件代码
2010/10/12 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
PHP开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
jQuery的观察者模式详解
2014/12/22 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
js格式化时间的方法
2015/12/18 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
input输入密码变黑点密文的实现方法
2017/01/09 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
angular 数据绑定之[]和{{}}的区别
2018/09/25 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
小程序实现投票进度条
2019/11/20 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
javascript实现简单页面倒计时
2021/03/02 Javascript
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
python3.x 将byte转成字符串的方法
2018/07/17 Python
Python 将Matrix、Dict保存到文件的方法
2018/10/30 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
利用python求积分的实例
2019/07/03 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
意大利奢侈品购物网站:Deliberti
2019/10/08 全球购物
什么是Remote Module
2016/06/10 面试题
大学生实习思想汇报
2014/01/12 职场文书
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
双方协议书
2014/04/22 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
律师授权委托书范本
2014/10/07 职场文书
2014年学生工作总结
2014/11/20 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记