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

