python删除文件夹下相同文件和无法打开的图片
前天不小心把硬盘格式化了,丢了好多照片,后来用Recuva这款软件成功把文件恢复过来,可是恢复的文件中有好多重复的文件和无法打开的图片,所以写了两个python的小程序用来解决这个问题
删除相同文件:
#coding=utf-8 importos importos.path importImage importhashlib defget_md5(filename): m=hashlib.md5() mfile=open(filename,"rb") m.update(mfile.read()) mfile.close() md5_value=m.hexdigest() returnmd5_value if__name__=='__main__': ipath="E:\\20161019_photo" uipath=unicode(ipath,"utf8") forparent,dirnames,filenamesinos.walk(uipath): md5_list=[] #fordirnameindirnames:#输出文件夹信息 #print"parentis:"+parent #print"dirnameis:"+dirname forfilenameinfilenames: #print"parentis:"+parent #print"filenameis:"+filename #print"md5_listis:" if(get_md5(os.path.join(parent,filename))inmd5_list): os.remove(os.path.join(parent,filename)) else: md5_list.append(get_md5(os.path.join(parent,filename))) #printmd5_list #md5=[]
删除无法打开文件:
#coding=utf-8 importos importos.path importImage importhashlib defget_md5(filename): m=hashlib.md5() mfile=open(filename,"rb") m.update(mfile.read()) mfile.close() md5_value=m.hexdigest() returnmd5_value if__name__=='__main__': ipath="E:\\20161019_photo" uipath=unicode(ipath,"utf8") forparent,dirnames,filenamesinos.walk(uipath): forfilenameinfilenames: 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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短