python删除文件夹下相同文件和无法打开的图片

作者:应澜lst 时间:2023-03-09 19:26:42 

前天不小心把硬盘格式化了,丢了好多照片,后来用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

来源:https://blog.csdn.net/lst227405/article/details/52877662

标签:python,删除文件,删除图片
0
投稿

猜你喜欢

  • jquery常用的表单操作很全很详细

    2011-09-01 19:21:11
  • XSL简明教程

    2013-08-08 00:19:06
  • php去掉数组的第一个值的两个函数:array_shift、array_splice

    2023-05-29 02:26:07
  • Mysql Innodb 引擎优化

    2010-10-25 20:01:00
  • 揭开HTML 5工作草稿的神秘面纱

    2008-02-13 08:25:00
  • Python中的单例模式与反射机制详解

    2023-11-24 00:55:54
  • GetPageSize和GetPageScroll:获取页面大小、窗口大小和滚动条位置

    2008-12-27 22:30:00
  • python Django连接MySQL数据库做增删改查

    2023-11-14 10:44:35
  • 自由落体的DIV

    2010-01-22 15:40:00
  • Python 16进制与中文相互转换的实现方法

    2023-10-03 15:58:35
  • 如何用ASP输出HTML文件?

    2010-06-11 20:01:00
  • 百度地图API之本地搜索与范围搜索

    2023-08-23 17:24:38
  • mysql5在rhel5下乱码问题及解决方法

    2010-12-03 16:26:00
  • 在Python反编译中批量pyc转 py的实现代码

    2023-08-11 20:21:04
  • 简洁js的隔行变色代码

    2008-06-18 18:17:00
  • 如何基于pythonnet调用halcon脚本

    2022-09-27 16:34:23
  • 如何获取当前 select 元素的值

    2010-03-29 13:07:00
  • Oracle 8i字符集乱码问题析及其解决办法

    2010-07-26 13:29:00
  • SQL SERVER数据操作类代码

    2012-07-11 16:16:12
  • Debugging JavaScript:throw与console

    2008-08-29 17:03:00
  • asp之家 网络编程 m.aspxhome.com