python删除文件夹下相同文件和无法打开的图片
2016-10-20 22:15
507 查看
前天不小心把硬盘格式化了,丢了好多照片,后来用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
删除相同文件:
#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
相关文章推荐
- win7删除文件时,提示“操作无法完成,因为其中的文件夹或文件已在另一程序中打开”问题
- python 使用 urllib.urlretrieve()下载网络图片,在本地打开提示文件损坏无法打开
- win7删除文件时,提示“操作无法完成,因为其中的文件夹或文件已在另一程序中打开”问题
- 删除某个文件(或者文件夹)的时候,提示,"操作无法完成,因为文件已在XX中打开,请关闭该文件并重试"
- vc工程中打开的时候类视图无法完全显示类解决方案——删除工程所在文件夹中的后缀为ncb的文件,重新打开即可
- Win7删除文件时,提示“操作无法完成,因为其中的文件夹或文件已在另一程序中打开”
- c#中pictureBox显示图片文件无法删除
- 【转】无法删除文件的最佳解决方案(可用于删除VISTA文件和文件夹)
- 创建系统无法删除的文件夹 加密文件
- [转]python文件操作/打开/删除文件/压缩文件
- 无法删除 NTFS 文件系统卷上的文件或文件夹
- 无法打开Web项目 文件路径与URL不符。这两者需要映射到相同的服务器位置
- 系统提示无法删除文件或文件夹的常用解决办法
- opencv:fatal error LNK1104: 无法打开文件“python26_d.lib” 问题解决
- 无法删除文件或文件夹的解决办法
- Python-递归文件夹并删除文件
- 打开ASP.NET Web项目时,此项目的默认Web访问模式设置为文件共享, 但是无法从路径“...”打开“...”处的项目文件夹。返回的错误是: 无法打开Web项目“”。返回的错误是: 无法打开Web项目“...”。文件路径“...”怀URL“...”不
- 创建系统无法删除的文件夹 加密文件
- 无法删除文件、文件夹之无法读源文件或磁盘
- 错误:无法打开web项目”****“,文件路径“****”与url“**”不符。这两者要映射到相同的服务器位置。