python刪除文件夾下相同文件和無(wú)法打開(kāi)的圖片
前天不小心把硬盤格式化了,丟了好多照片,后來(lái)用Recuva這款軟件成功把文件恢復(fù)過(guò)來(lái),可是恢復(fù)的文件中有好多重復(fù)的文件和無(wú)法打開(kāi)的圖片,所以寫了兩個(gè)python的小程序用來(lái)解決這個(gè)問(wèn)題
刪除相同文件:
#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 = []
刪除無(wú)法打開(kāi)文件:
#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
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何使用PyTorch實(shí)現(xiàn)自由的數(shù)據(jù)讀取
這篇文章主要給大家介紹了關(guān)于如何使用PyTorch實(shí)現(xiàn)自由的數(shù)據(jù)讀取的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-03-03在PyCharm搭建OpenCV-python的環(huán)境的詳細(xì)過(guò)程
這篇文章主要介紹了在PyCharm搭建OpenCV-python的環(huán)境的詳細(xì)過(guò)程,本文通過(guò)圖文并茂的形式給大家介紹搭建步驟,對(duì)PyCharm搭建OpenCV-python環(huán)境相關(guān)知識(shí)感興趣的朋友一起看看吧2022-05-05解決pycharm下載庫(kù)時(shí)出現(xiàn)Failed to install package的問(wèn)題
很多小伙伴遇到pycharm下載庫(kù)時(shí)出現(xiàn)Failed to install package不知道怎么解決,下面小編給大家?guī)?lái)了解決方法,需要的朋友參考下吧2021-09-09Python?標(biāo)準(zhǔn)庫(kù)?fileinput與文件迭代器
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)fileinput與文件迭代器,fileinput模塊可以對(duì)一個(gè)或多個(gè)文件中的內(nèi)容進(jìn)行迭代、遍歷等操作,更多詳細(xì)內(nèi)容需要的朋友可以參考一下2022-09-09python tqdm 實(shí)現(xiàn)滾動(dòng)條不上下滾動(dòng)代碼(保持一行內(nèi)滾動(dòng))
這篇文章主要介紹了python tqdm 實(shí)現(xiàn)滾動(dòng)條不上下滾動(dòng)代碼(保持一行內(nèi)滾動(dòng)),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02python日期時(shí)間轉(zhuǎn)為字符串或者格式化輸出的實(shí)例
今天小編就為大家分享一篇python日期時(shí)間轉(zhuǎn)為字符串或者格式化輸出的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05python多線程semaphore實(shí)現(xiàn)線程數(shù)控制的示例
這篇文章主要介紹了python多線程semaphore實(shí)現(xiàn)線程數(shù)控制的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08ubuntu20.04運(yùn)用startup application開(kāi)機(jī)自啟動(dòng)python程序的腳本寫法
這篇文章主要介紹了ubuntu20.04運(yùn)用startup application開(kāi)機(jī)自啟動(dòng)python程序的腳本寫法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-10-10