需求描述
上周突然接到一個任務,要通過XX網站導出XX年-XX年之間的數據,導出后的文件名就是對應日期,導出后發現,竟然有的文件大小是一樣,但文件名又沒有重復,所以打開文件看了下,確實重復了,原因暫時不清楚,預測是網站的原因,最后發現大概只有 30% 的數據沒有重復。我淦!

啥也不說,首要任務還是把那些沒有重復的文件給篩選出來,或是刪除重復的文件。文件很多幾百個,通過一個個的對比文件去刪除估計又要加班,然后突然想到 Python
有個內置的 filecmp
能夠貌似是比較文件的,于是乎就有了這篇文章~

擼代碼ing
導出的文件都是保存在同一文件夾下的,格式也相同。然后,上網查了下 filecmp.cmp()
的用法。
filecmp.cmp(f1, f2, shallow=True)
f1/f2
:待比較的兩個文件路徑。shallow
:默認為True,即只比較os.stat()獲取的元數據(創建時間,大小等信息)是否相同,設置為False的話,在對比文件的時候還要比較文件內容。
from pathlib import Path
import filecmp
path_list = [path for path in Path(r'C:\Users\pc\Desktop\test').iterdir() if path.is_file()]
for front in range(len(path_list) - 1):
for later in range(front + 1, len(path_list)):
if filecmp.cmp(path_list[front], path_list[later], shallow=False):
path_list[front].unlink() # 刪除文件
break
為了防止代碼有問題,我先創建了一個 test 文件夾,在文件夾下手動創建了6個文件,1~5中只有1,2,3,4,5對應的數字內容,第6個為空文件。

之后再將文件全部復制一份。

▶️運行效果

到此這篇關于8行代碼實現Python文件去重的文章就介紹到這了,更多相關Python文件去重內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python實現MD5進行文件去重的示例代碼
- 對python讀寫文件去重、RE、set的使用詳解
- Python實現的txt文件去重功能示例