您好,登錄后才能下訂單哦!
這篇文章主要介紹了python如何刪除本地夾里重復(fù)文件,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1、簡單易用,與C/C++、Java、C# 等傳統(tǒng)語言相比,Python對(duì)代碼格式的要求沒有那么嚴(yán)格;2、Python屬于開源的,所有人都可以看到源代碼,并且可以被移植在許多平臺(tái)上使用;3、Python面向?qū)ο?,能夠支持面向過程編程,也支持面向?qū)ο缶幊蹋?、Python是一種解釋性語言,Python寫的程序不需要編譯成二進(jìn)制代碼,可以直接從源代碼運(yùn)行程序;5、Python功能強(qiáng)大,擁有的模塊眾多,基本能夠?qū)崿F(xiàn)所有的常見功能。
一、方法和思路
1.比對(duì)文件是否相同的方法:hashlib庫里提供了獲取文件md5值的方法,所以我們可以通過md5值來判定是否圖片相同
2.對(duì)文件的操作:os庫里有對(duì)文件的操作方法,比如:os.remove()可以刪除指定的文件, os.listdir()可以通過指定文件夾路徑獲取文件夾里所有文件的文件名
思路:通過獲取指定文件夾的所有文件名,然后匹配為一個(gè)絕對(duì)路徑的列表,循環(huán)的比對(duì)每個(gè)文件的md5值,如果md5值重復(fù),則刪除這個(gè)文件
二、代碼實(shí)現(xiàn)
import os import hashlib import logging import sys def logger(): """ 獲取logger""" logger = logging.getLogger() if not logger.handlers: # 指定logger輸出格式 formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s') # 文件日志 file_handler = logging.FileHandler("test.log") file_handler.setFormatter(formatter) # 可以通過setFormatter指定輸出格式 # 控制臺(tái)日志 console_handler = logging.StreamHandler(sys.stdout) console_handler.formatter = formatter # 也可以直接給formatter賦值 # 為logger添加的日志處理器 logger.addHandler(file_handler) logger.addHandler(console_handler) # 指定日志的最低輸出級(jí)別,默認(rèn)為WARN級(jí)別 logger.setLevel(logging.INFO) return logger def get_md5(filename): m = hashlib.md5() mfile = open(filename, "rb") m.update(mfile.read()) mfile.close() md5_value = m.hexdigest() return md5_value def get_urllist(): #替換指定的文件夾路徑即可 base = ("F:\\pythonFile\\煎蛋網(wǎng)\\無聊圖\\jpg\\") list = os.listdir(base) urlList=[] for i in list: url = base + i urlList.append(url) return urlList if __name__ == '__main__': log = logger() md5List =[] urlList =get_urllist() for a in urlList: md5 =get_md5(a) if (md5 in md5List): os.remove(a) print("重復(fù):%s"%a) log.info("重復(fù):%s"%a) else: md5List.append(md5) # print(md5List) print("一共%s張照片"%len(md5List))
然后我們可以通過日志來查看到底哪些文件是重復(fù)的,不過對(duì)于一些超大文件的話,md5值的獲取會(huì)有一些變化,不過處理一般的小文件都可以的,只需要替換我的路徑,就可以在你電腦上運(yùn)行啦。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“python如何刪除本地夾里重復(fù)文件”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。