5分鐘,10行代碼!帶你用Python做個電腦文件清道夫!
大家在日常的工作和學(xué)習(xí)中,會面臨到許多文件的處理,包括各種office文檔、視頻、圖片等文件內(nèi)容,有時候也會有很多文件重復(fù)存在,如果需要人工的方式來刪除重復(fù)的文件會非常的復(fù)雜。
因此,菜鳥哥為大家制作了一款較為靈活的清道夫神器,幫助大家一鍵清除電腦重復(fù)文件,一起來看看吧。
01.效果展示
當(dāng)我們想要查詢哪個文件夾下重復(fù)的文件時,就將該軟件放到對應(yīng)的文件夾下,然后直接運(yùn)行該軟件,軟件會給出重復(fù)的文件提示,點(diǎn)擊確定后,重復(fù)的軟件就會被刪除。
02.程序設(shè)計思路
1).查詢文件夾下所有的文件
對于文件夾下所有文件的查詢,可以利用glob庫中的glob函數(shù)來遞歸進(jìn)行查詢,程序如下圖所示:
程序中,利用glob函數(shù)來遞歸的查詢當(dāng)前文件夾下所有的文件,并將文件保存到file_list列表當(dāng)中,將file_list列表中的數(shù)據(jù)打印出來可以發(fā)現(xiàn),所有的文件都是遞歸到最后的一個文件夾中,輸出結(jié)果中不存在任何的文件夾。
2).判斷文件是否重復(fù)
對于兩個文件是否相同,這里的判斷利用的是filecmp庫中的cmp函數(shù)來進(jìn)行實(shí)現(xiàn)。程序如下圖所示:
程序中由于是對于file_list列表中的元素,利用cmp函數(shù)來進(jìn)行兩兩的對比,所以為了避免重復(fù)的比較,需要將重復(fù)的文件從file_list列表中剔除,同時將重復(fù)的兩個文件中的一個添加到del_list列表中,在后續(xù)的程序中刪除該文件。
需要注意的是,cmp函數(shù)并不是簡簡單單的依靠兩個文件名字是否重復(fù)來判斷兩個文件是否重復(fù),而是通過兩個文件的創(chuàng)建時間等文件屬性來判斷兩個文件是否是重復(fù)的。
程序首先隱藏了主窗口,然后通過彈出的窗口,展示需要刪除哪些重復(fù)的文件,當(dāng)用戶點(diǎn)擊確定時,則會將重復(fù)的文件徹底的刪除,點(diǎn)擊取消時,則不會刪除重復(fù)的文件。彈出窗口如下圖所示:
總結(jié)
以上就是小編為大家?guī)淼那宓婪蛏衿鳎绦虼虬膃xe只有9M左右,大家可以直接下載exe文件到指定的文件夾下,進(jìn)行效果的測試。
需要注意的是,如果一旦刪除的話,重復(fù)的文件是找不回來的,所以大家需要三思而后行,當(dāng)然大家可以下載源碼,修改程序,將重復(fù)文件放入垃圾箱。大家一起來動手試一試吧。
需要源碼,直接在下面的公眾號「程序員GitHub」,后臺輸入:10行