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通过pil模块获得图片exif信息的方法
Mar 16 Python
Python简单生成随机数的方法示例
Mar 31 Python
使用pandas读取csv文件的指定列方法
Apr 21 Python
PyTorch快速搭建神经网络及其保存提取方法详解
Apr 28 Python
详解Python:面向对象编程
Apr 10 Python
python 计算平均平方误差(MSE)的实例
Jun 29 Python
django多对多表的创建,级联删除及手动创建第三张表
Jul 25 Python
Django对接支付宝实现支付宝充值金币功能示例
Dec 17 Python
简单的Python人脸识别系统
Jul 14 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
Aug 03 Python
python list的index()和find()的实现
Nov 16 Python
Python实现粒子群算法的示例
Feb 14 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
解析thinkphp基本配置 convention.php
2013/06/18 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
php使用google地图应用实例
2014/12/31 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
javaScript 计算两个日期的天数相差(示例代码)
2013/12/27 Javascript
jQuery对val和atrr("value")赋值的区别介绍
2014/09/26 Javascript
Javascript中call和apply函数的比较和使用实例
2015/02/03 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
Bootstrap轮播插件中图片变形的终极解决方案 使用jqthumb.js
2016/07/10 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
JavaScript中offsetWidth的bug及解决方法
2017/05/17 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
JavaScript实现左侧菜单效果
2017/12/14 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
详细分析Node.js 多进程
2020/06/22 Javascript
Python中使用中文的方法
2011/02/19 Python
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
如何使用pandas读取txt文件中指定的列(有无标题)
2020/03/05 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
详解CSS3:overflow属性
2020/11/17 HTML / CSS
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
聚网科技C++面试笔试题
2015/09/01 面试题
工作失误检讨书
2015/01/26 职场文书
个人德育工作总结
2015/03/05 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python