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爬虫框架Scrapy安装使用步骤
Apr 01 Python
python在linux系统下获取系统内存使用情况的方法
May 11 Python
在Mac OS上使用mod_wsgi连接Python与Apache服务器
Dec 24 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
对python实时得到鼠标位置的示例讲解
Oct 14 Python
Python实战购物车项目的实现参考
Feb 20 Python
Linux上使用Python统计每天的键盘输入次数
Apr 17 Python
Python实现堡垒机模式下远程命令执行操作示例
May 09 Python
python获取点击的坐标画图形的方法
Jul 09 Python
python实现一行输入多个值和一行输出多个值的例子
Jul 16 Python
python实现批量文件重命名
Oct 31 Python
将python文件打包exe独立运行程序方法详解
Feb 12 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
php array_filter除去数组中的空字符元素
2020/06/21 PHP
php文件缓存类汇总
2014/11/21 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
2016/01/19 PHP
一个简单的php路由类
2016/05/29 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
jquery蒙版控件实现代码
2010/12/08 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
Node.js 数据加密传输浅析
2016/11/16 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
2019/07/15 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
使用DataFrame删除行和列的实例讲解
2018/04/08 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
2019/08/28 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
城建学院毕业生自荐信
2014/01/31 职场文书
商业计算机应用专业自荐书
2014/06/09 职场文书
小浪底导游词
2015/02/12 职场文书
大学生入党自荐书
2015/03/05 职场文书
车辆管理制度范本
2015/08/05 职场文书
健康教育主题班会
2015/08/14 职场文书
Python基础知识之变量的详解
2021/04/14 Python
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android