python删除文件夹下相同文件和无法打开的图片
2019-07-16 16:34
1211 查看
前天不小心把硬盘格式化了,丢了好多照片,后来用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删除文件夹下相同文件和无法打开的图片
- win7删除文件时,提示“操作无法完成,因为其中的文件夹或文件已在另一程序中打开”问题
- 删除某个文件(或者文件夹)的时候,提示,"操作无法完成,因为文件已在XX中打开,请关闭该文件并重试"
- DevOps进阶(十)Jenkins组包时解决无法删除文件夹的情况:文件夹正在使用,操作无法完成,因为其中的文件,或文件夹已在另一个程序中打开...
- vc工程中打开的时候类视图无法完全显示类解决方案——删除工程所在文件夹中的后缀为ncb的文件,重新打开即可
- python 使用 urllib.urlretrieve()下载网络图片,在本地打开提示文件损坏无法打开
- win7删除文件时,提示“操作无法完成,因为其中的文件夹或文件已在另一程序中打开”问题
- Win7删除文件时,提示“操作无法完成,因为其中的文件夹或文件已在另一程序中打开”
- Windows XP下如何删除“访问被拒绝,无法删除”的文件或文件夹
- “无法删除 文件:无法读源文件或磁盘”-文件夹无法删除的最终而有效的解决方法
- 在 Pro/ENGINEER Wildfire 5.0 的”文件打开“对话框中,无法打开Windchill 文件柜中特定的几个文件夹,报告错误“Cannot find wtpub://xxxx”
- 创建系统无法删除的文件夹 加密文件
- U盘中删除文件时提示:无法删除空文件夹,提示该目录不是空的(不能删除、不能复制)
- 文件名过长文件夹路径过长,无法删除文件夹文件的解决办法
- windows下建立无法正常删除与正常打开的文件夹
- WPF BitmapImage 图片资源无法删除,文件正在被另一个进程使用
- 无法删除文件夹及文件
- 删除目录下相同文件的python代码(逐级优化)
- vs2003.net报“无法打开Web项目文件路径与URL不符。这两者需要映射到相同的服务器”问题
- C# 将图片导出Excel(包括 创建Excel 、文件压缩、递归删除文件及文件夹)