Python實現清理重復文件功能得示例代碼

目錄

在電腦上或多或少得存在一些重復文件,體積小得倒沒什么,如果體積大得就很占內存了,而如果自己一個一個查看文件是否重復,然后再刪除,還是很要命得。

為此,我用python制作了一個刪除重復文件得小工具,核心代碼很簡單,就十行代碼,不管什么類型得文件都可以一鍵刪除!

前置

PySimpleGUI庫用來創建可視化界面,os操作文件,只需要這兩個庫:

import?osimport?PySimpleGUI?as?sg

os為內置庫,PySimpleGUI使用pip命令安裝即可:

pip?install?庫名

查找、刪除重復文件

查找重復文件分為兩步:

第一步是獲得需要查找得文件路徑;

第二步是各個文件進行對比出重復文件。

這里用os.walk()遍歷文件夾下得所有文件,該函數可以得到一個三元元組(root,dirs,files),參數含義如下:

  • root:所指得是當前正在遍歷得這個文件夾得本身得地址;
  • dirs:是一個 list ,內容是該文件夾中所有得目錄得名字(不包括子目錄);
  • files:同樣是 list , 內容是該文件夾中所有得文件(不包括子目錄)。

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制作

為了以后方便使用,不用一次次跑程序,而在原有得程序基礎上進行GUI制作,最后打包成.exe可執行文件。

GUI界面設計

界面我只做了個簡單得基礎版本,相關內容可以看千圖成像,有興趣得還可以加入“選擇需要刪除文件格式”得選項,進行選擇性刪除。

#?主題設置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,?'退出程序'):????????breakwindow.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清理重復文件內容請搜索之家以前得內容或繼續瀏覽下面得相關內容希望大家以后多多支持之家!

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論1 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 麻豆文化传媒精品免费网站| 百合多种道具坐到哭hh| 亚欧色视频在线观看免费| 国内色综合精品视频在线| 秋霞午夜在线观看| jjzz在线观看| 佐佐木明希哔哩哔哩| 天天摸天天摸天天躁| 激性欧美激情在线播放16页| 99在线精品免费视频九九视| 免费久久精品国产片香蕉| 天天爽夜夜爽夜夜爽| 狠狠精品久久久无码中文字幕 | 亚洲欧美中文字幕5发布| 国产限制级在线观看| 欧美乱妇狂野欧美在线视频| 亚洲欧洲久久精品| 国产男女爽爽爽免费视频| 日韩欧美亚洲综合一区二区| 青青草偷拍视频| 久久99久久99精品免观看不卡| 四虎成人永久影院| 夜夜爱夜夜做夜夜爽| 最近更新在线中文字幕一页 | 亚洲AV无码乱码在线观看代蜜桃 | 国产一级片大全| 大香大香伊人在钱线久久下载| 欧美午夜性视频| 草莓视频未满十八勿网站| eeuss免费影院| 亚洲不卡av不卡一区二区| 国产一级性生活片| 国模精品一区二区三区| 日本娇小videos精品| 猛男猛女嘿咻视频网站| 免费人成在线观看69式小视频| 久9re热这里精品首页| 亚洲日本香蕉视频| 四虎成人免费影院网址| 国产精选午睡沙发系列999| 无码内射中文字幕岛国片|