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深入学习之特殊方法与多范式
Aug 31 Python
跟老齐学Python之玩转字符串(3)
Sep 14 Python
基于Python实现一个简单的银行转账操作
Mar 06 Python
python万年历实现代码 含运行结果
May 20 Python
python实现微信防撤回神器
Apr 29 Python
通过cmd进入python的实例操作
Jun 26 Python
如何通过python画loss曲线的方法
Jun 26 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
使用K.function()调试keras操作
Jun 17 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
Jul 03 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
python计算auc的方法
Sep 09 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操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
通用PHP动态生成静态HTML网页的代码
2010/03/04 PHP
PHP中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
复制网页内容,粘贴之后自动加上网址的实现方法(脚本之家特别整理)
2014/10/16 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
JavaScript中实现sprintf、printf函数
2015/01/27 Javascript
jquery中map函数遍历数组用法实例
2015/05/18 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
select2 ajax 设置默认值,初始值的方法
2018/08/09 Javascript
vue.js实现数据库的JSON数据输出渲染到html页面功能示例
2019/08/03 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
JS实现简易图片自动轮播
2020/10/16 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
Python使用正则表达式过滤或替换HTML标签的方法详解
2017/09/25 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
python利用小波分析进行特征提取的实例
2019/01/09 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
法律工作求职自荐信
2013/10/31 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
工作疏忽检讨书500字
2014/10/26 职场文书
毕业设计论文评语
2014/12/31 职场文书
接待员岗位职责
2015/02/13 职场文书
党员自我评价2015
2015/03/03 职场文书
安娜卡列尼娜观后感
2015/06/11 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android