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读取文件的四种不同方法比对
May 18 Python
Python 多线程Threading初学教程
Aug 22 Python
Python实现字符串匹配算法代码示例
Dec 05 Python
Python爬虫实例扒取2345天气预报
Mar 04 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
完美解决Python 2.7不能正常使用pip install的问题
Jun 12 Python
python十进制和二进制的转换方法(含浮点数)
Jul 07 Python
Python文件监听工具pyinotify与watchdog实例
Oct 15 Python
python 多线程将大文件分开下载后在合并的实例
Nov 09 Python
Django+Xadmin构建项目的方法步骤
Mar 06 Python
结束运行python的方法
Jun 16 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实现让页面只能被百度gogole蜘蛛访问的方法
2009/12/29 PHP
PHP数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
php限制ip地址范围的方法
2015/03/31 PHP
phpcms手机内容页面添加上一篇和下一篇
2015/06/05 PHP
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
javascript学习小结之prototype
2015/12/03 Javascript
js实现拖拽功能
2017/03/01 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
vue 运用mock数据的示例代码
2017/11/07 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
Python基于csv模块实现读取与写入csv数据的方法
2018/01/18 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
python如何获得list或numpy数组中最大元素对应的索引
2020/11/16 Python
英国电器零售商:PRC Direct
2018/06/21 全球购物
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
几个Shell Script面试题
2012/08/31 面试题
初三新学期计划书
2014/05/03 职场文书
网络营销策划方案
2014/06/04 职场文书
2014年生产部工作总结
2014/12/17 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
创业计划书之便利店
2019/09/05 职场文书
win10清理dns缓存
2022/04/19 数码科技