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实现抓取城市的PM2.5浓度和排名
Mar 19 Python
python使用pil生成缩略图的方法
Mar 26 Python
Python使用Mechanize模块编写爬虫的要点解析
Mar 31 Python
基于Django filter中用contains和icontains的区别(详解)
Dec 12 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
Apr 10 Python
python面向对象入门教程之从代码复用开始(一)
Dec 11 Python
python获取本机所有IP地址的方法
Dec 26 Python
聊聊python里如何用Borg pattern实现的单例模式
Jun 06 Python
Python Web框架之Django框架Model基础详解
Aug 16 Python
python命令 -u参数用法解析
Oct 24 Python
python 录制系统声音的示例
Dec 21 Python
Django集成富文本编辑器summernote的实现步骤
May 31 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
DC这些乐高系列动画电影你看过几部?
2020/04/09 欧美动漫
德劲1104的电路分析与改良
2021/03/01 无线电
PHP教程 基本语法
2009/10/23 PHP
PHPExcel读取Excel文件的实现代码
2011/12/06 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
2012/09/23 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
js 计算图片内点个数的示例代码
2019/04/04 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
vscode 配置vue+vetur+eslint+prettier自动格式化功能
2020/03/23 Javascript
JavaScript进阶(三)闭包原理与用法详解
2020/05/09 Javascript
python插入数据到列表的方法
2015/04/30 Python
基于Python闭包及其作用域详解
2017/08/28 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
python 安装impala包步骤
2020/03/28 Python
python 通过文件夹导入包的操作
2020/06/01 Python
Django xadmin安装及使用详解
2020/10/26 Python
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
四年大学生活的个人自我评价
2013/12/11 职场文书
卫生巾广告词
2014/03/18 职场文书
最美护士演讲稿
2014/08/27 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android