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模拟登陆淘宝并统计淘宝消费情况的代码实例分享
Jul 04 Python
python八大排序算法速度实例对比
Dec 06 Python
python编程培训 python培训靠谱吗
Jan 17 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
May 18 Python
使用PyCharm创建Django项目及基本配置详解
Oct 24 Python
Python OpenCV利用笔记本摄像头实现人脸检测
Aug 20 Python
python 求定积分和不定积分示例
Nov 20 Python
pycharm双击无响应(打不开问题解决办法)
Jan 10 Python
解决python 找不到module的问题
Feb 12 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
Mar 12 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 Python
移除Selenium中window.navigator.webdriver值
Jun 10 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实现的MySQL数据浏览器
2007/03/11 PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
利用中国天气预报接口实现简单天气预报
2014/01/20 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
PHP实现的函数重载功能示例
2018/08/03 PHP
提高网站信任度的技巧
2008/10/17 Javascript
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
vue-router相关基础知识及工作原理
2018/03/16 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
vue-cli3跨域配置的简单方法
2019/09/06 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
2020/09/09 Javascript
Linux下为不同版本python安装第三方库
2016/08/31 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
Python在for循环中更改list值的方法【推荐】
2018/08/17 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
浅谈Python 敏感词过滤的实现
2019/08/15 Python
Numpy之reshape()使用详解
2019/12/26 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
澳大利亚旅游网站:Lastminute
2017/08/07 全球购物
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
七年级地理教学反思
2014/01/26 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
关于工作经历的证明书
2014/10/11 职场文书
XX部保密工作制度范本
2019/08/27 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
vscode远程免密登入Linux服务器的配置方法
2022/06/28 Servers