<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在電腦上或多或少的存在一些重複檔案,體積小的倒沒什麼,如果體積大的就很佔記憶體了,而如果自己一個一個檢視檔案是否重複,然後再刪除,還是很要命的。
為此,我用python製作了一個刪除重複檔案的小工具,核心程式碼很簡單,就十行程式碼,不管什麼型別的檔案都可以一鍵刪除!
PySimpleGUI庫用來建立視覺化介面,os操作檔案,只需要這兩個庫:
import os import PySimpleGUI as sg
os為內建庫,PySimpleGUI使用pip命令安裝即可:
pip install 庫名
查詢重複檔案分為兩步:
第一步是獲得需要查詢的檔案路徑;
第二步是各個檔案進行對比出重複檔案。
這裡用os.walk()遍歷資料夾下的所有檔案,該函數可以得到一個三元元組(root,dirs,files),引數含義如下:
file_path即walk()函數中的引數top,是你所要遍歷的目錄的路徑,C、D槽或者指定資料夾均可:
for root, dirs, files in os.walk(file_path): for file in files: # 組合得到資料夾所有檔案的路徑 path = os.path.join(root, file)
得到所有的檔案路徑後,對其進行讀取,不同的檔案格式讀取出來的內容都是不同的,然後通過字典對映的方式儲存讀取的內容和路徑,接著只需要進行判斷是否有重複的內容,有的話根據路徑用os.remove()進行刪除:
dict = {} f = open(path, 'rb').read() if f in dict: # 刪除 os.remove(path) print('刪除重複檔案:', path) else: dict[f] = path
以上就是核心程式碼,一共十行。
為了以後方便使用,不用一次次跑程式,而在原有的程式基礎上進行GUI製作,最後打包成.exe可執行檔案。
介面我只做了個簡單的基礎版本,相關內容可以看千圖成像,有興趣的還可以加入“選擇需要刪除檔案格式”的選項,進行選擇性刪除。
# 主題設定 sg.theme('LightBrown3') # 佈局設定 layout = [ [sg.Frame(layout=[ [sg.InputText(key='file_path', size=(41, 1), font=("微軟雅黑", 10), enable_events=True), sg.FolderBrowse('選擇資料夾', font=("微軟雅黑", 12)), ], ], title='資料夾選擇', title_color='blue', font=("微軟雅黑", 10), relief=sg.RELIEF_SUNKEN, )], [sg.Frame(layout=[ [sg.Output(size=(51, 10), font=("微軟雅黑", 10))], ], title='資訊展示', title_color='blue', font=("微軟雅黑", 10), relief=sg.RELIEF_SUNKEN, )], [sg.Button('開始刪除', font=("微軟雅黑", 12)), sg.Text('', font=("微軟雅黑", 12), size=(27, 0)), sg.Button('退出程式', font=("微軟雅黑", 12), button_color='red')] ] # 建立視窗 window = sg.Window('刪除重複檔案', layout, font=("微軟雅黑", 12), default_element_size=(80, 1)) filepath = [] # 事件迴圈 while True: # 退出按鈕 event, values = window.read() if event in (None, '退出程式'): break window.close()
介面效果如下:
GUI介面效果
獲取資料夾路徑,把得到的路徑存入列表中:
if event == 'file_path': files = values['file_path'] if os.path.exists(files): filepath.append(files) else: print('資料夾不存在,請重新選擇!') sg.popup('資料夾不存在,請重新選擇!')
啟動按鈕,點選時把路徑列表傳入main函數中:
if event == '開始刪除': if len(filepath) != 0: main(filepath) else: sg.popup('資料夾未選擇!')
GUI打包
打包可以直接使用pyinstaller進行安裝;如果你不知道怎麼打包,或者不熟悉命令列操作,可以使用前面文章:打包工具,這款打包工具可以簡單的滿足打包需求。
使用pyinstaller庫打包,啟動命令列視窗,在命令列視窗cd到檔案所在的檔案目錄中,最後用下面命令進行打包:
pyinstaller -F -w 名稱.py
打包過程沒出現什麼狀況,會得到幾個檔案,進入dist資料夾,就可以看見.exe檔案了。
範例結果
至此,我們就成功利用Python實現了清理重複檔案工具。
到此這篇關於Python實現清理重複檔案功能的範例程式碼的文章就介紹到這了,更多相關Python清理重複檔案內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45