python刪除文件夾下相同文件和無法打開的圖片
前天不小心把硬盤格式化了,丟了好多照片,后來用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
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python獲取系統(tǒng)內(nèi)存占用信息的實例方法
在本篇文章里小編給大家整理的是關(guān)于python獲取系統(tǒng)內(nèi)存占用信息的實例方法,有需要的朋友們可以參考學習下。2020-07-07
Django認證系統(tǒng)實現(xiàn)的web頁面實現(xiàn)代碼
這篇文章主要介紹了Django認證系統(tǒng)實現(xiàn)的web頁面實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-08-08
vscode寫python時的代碼錯誤提醒和自動格式化的方法
這篇文章主要介紹了vscode寫python時的代碼錯誤提醒和自動格式化的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05
Python求兩點之間的直線距離(2種實現(xiàn)方法)
今天小編就為大家分享一篇Python求兩點之間的直線距離(2種實現(xiàn)方法),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07
基于python實現(xiàn)在excel中讀取與生成隨機數(shù)寫入excel中
最近接個項目,項目要求是這樣的:在一份已知的excel表格中讀取學生的學號與姓名,再將這些數(shù)據(jù)放到新的excel表中的第一列與第二列,最后再生成隨機數(shù)作為學生的考試成績,具體實現(xiàn)代碼大家參考下本文2018-01-01
Python實現(xiàn)12306火車票搶票系統(tǒng)
這篇文章主要介紹了Python實現(xiàn)12306火車票搶票系統(tǒng),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-07-07
解決python中os.system調(diào)用exe文件的問題
這篇文章主要介紹了解決python中os.system調(diào)用exe文件的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05
python將ip地址轉(zhuǎn)換成整數(shù)的方法
這篇文章主要介紹了python將ip地址轉(zhuǎn)換成整數(shù)的方法,涉及Python針對IP地址的轉(zhuǎn)換技巧,需要的朋友可以參考下2015-03-03

