最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實現(xiàn)清理重復(fù)文件功能的示例代碼

 更新時間:2022年07月26日 16:05:07   作者:鋒小刀  
在電腦上或多或少的存在一些重復(fù)文件,體積小的倒沒什么,如果體積大的就很占內(nèi)存了。本文用python制作了一個刪除重復(fù)文件的小工具,核心代碼很簡單,希望對你有所幫助

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

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

前置

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

import?os
import?PySimpleGUI?as?sg

os為內(nèi)置庫,PySimpleGUI使用pip命令安裝即可:

pip?install?庫名

查找、刪除重復(fù)文件

查找重復(fù)文件分為兩步:

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

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

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

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

file_path即walk()函數(shù)中的參數(shù)top,是你所要遍歷的目錄的路徑,C、D盤或者指定文件夾均可:

?for?root,?dirs,?files?in?os.walk(file_path):
?????for?file?in?files:
??????#?組合得到文件夾所有文件的路徑
?????????path?=?os.path.join(root,?file)

得到所有的文件路徑后,對其進行讀取,不同的文件格式讀取出來的內(nèi)容都是不同的,然后通過字典映射的方式存儲讀取的內(nèi)容和路徑,接著只需要進行判斷是否有重復(fù)的內(nèi)容,有的話根據(jù)路徑用os.remove()進行刪除:

dict?=?{}
f?=?open(path,?'rb').read()
if?f?in?dict:
?????#?刪除
?????os.remove(path)
?????print('刪除重復(fù)文件:',?path)
?else:
?????dict[f]?=?path

以上就是核心代碼,一共十行。

GUI制作

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

GUI界面設(shè)計

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

#?主題設(shè)置
sg.theme('LightBrown3')??

#?布局設(shè)置
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')]
]

#?創(chuàng)建窗口
window?=?sg.Window('刪除重復(fù)文件',?layout,?font=("微軟雅黑",?12),?default_element_size=(80,?1))

filepath?=?[]

#?事件循環(huán)
while?True:
????#?退出按鈕
????event,?values?=?window.read()
????if?event?in?(None,?'退出程序'):
????????break
window.close()

界面效果如下:

GUI界面效果

邏輯設(shè)計

獲取文件夾路徑,把得到的路徑存入列表中:

?if?event?==?'file_path':
????files?=?values['file_path']
????if?os.path.exists(files):
????????filepath.append(files)
????else:
????????print('文件夾不存在,請重新選擇!')
????????sg.popup('文件夾不存在,請重新選擇!')

啟動按鈕,點擊時把路徑列表傳入main函數(shù)中:

if?event?==?'開始刪除':
????if?len(filepath)?!=?0:
????????main(filepath)
????else:
????????sg.popup('文件夾未選擇!')

GUI打包

打包可以直接使用pyinstaller進行安裝;如果你不知道怎么打包,或者不熟悉命令行操作,可以使用前面文章:打包工具,這款打包工具可以簡單的滿足打包需求。

使用pyinstaller庫打包,啟動命令行窗口,在命令行窗口cd到文件所在的文件目錄中,最后用下面命令進行打包:

pyinstaller?-F?-w?名稱.py

打包過程沒出現(xiàn)什么狀況,會得到幾個文件,進入dist文件夾,就可以看見.exe文件了。

效果展示

示例結(jié)果

至此,我們就成功利用Python實現(xiàn)了清理重復(fù)文件工具。

到此這篇關(guān)于Python實現(xiàn)清理重復(fù)文件功能的示例代碼的文章就介紹到這了,更多相關(guān)Python清理重復(fù)文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Python如何批量檢查圖像是否可用

    詳解Python如何批量檢查圖像是否可用

    數(shù)據(jù)集中的圖像,一般不可用在以下3個方面:圖像過小、無法打開和“Premature end of JPEG file”。本文將為大家介紹Python如何批量檢查圖像是否可用,感興趣的可以了解一下
    2022-06-06
  • Python?中?Selenium?的?send_keys()?函數(shù)用法小結(jié)

    Python?中?Selenium?的?send_keys()?函數(shù)用法小結(jié)

    send_keys() 是將數(shù)字、文本和符號等鍵盤輸入發(fā)送到應(yīng)用程序的文本框的過程, send_keys() 是 WebDriver 的一部分,每個鍵盤輸入都會發(fā)送到此元素,這篇文章主要介紹了Python?中?Selenium?的?send_keys()?函數(shù),需要的朋友可以參考下
    2023-11-11
  • 詳解numpy.ndarray.reshape()函數(shù)的參數(shù)問題

    詳解numpy.ndarray.reshape()函數(shù)的參數(shù)問題

    這篇文章主要介紹了詳解numpy.ndarray.reshape()函數(shù)的參數(shù)問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • Atom的python插件和常用插件說明

    Atom的python插件和常用插件說明

    這篇文章給大家分享了Atom的python插件和常用插件,有需要的朋友們可以學習參考下。
    2018-07-07
  • python實現(xiàn)釘釘機器人自動打卡天天早下班

    python實現(xiàn)釘釘機器人自動打卡天天早下班

    這篇文章主要為大家介紹了python實現(xiàn)釘釘機器人自動打卡天天下早班實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 在Python的web框架中中編寫日志列表的教程

    在Python的web框架中中編寫日志列表的教程

    這篇文章主要介紹了在Python中編寫日志列表的教程,示例代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • Python實現(xiàn)病毒仿真器的方法示例(附demo)

    Python實現(xiàn)病毒仿真器的方法示例(附demo)

    這篇文章主要介紹了Python實現(xiàn)病毒仿真器的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Python?頁面解析Beautiful?Soup庫的使用方法

    Python?頁面解析Beautiful?Soup庫的使用方法

    Beautiful?Soup?簡稱?BS4(其中?4?表示版本號)是一個?Python?中常用的頁面解析庫,它可以從?HTML?或?XML?文檔中快速地提取指定的數(shù)據(jù),這篇文章主要介紹了springboot?集成?docsify?實現(xiàn)隨身文檔?,需要的朋友可以參考下
    2022-09-09
  • python中return如何寫

    python中return如何寫

    在本篇文章里小編給大家分享的是一篇關(guān)于python中return如何寫的知識點總結(jié),需要的朋友們參考學習下。
    2020-06-06
  • Python3實現(xiàn)帶附件的定時發(fā)送郵件功能

    Python3實現(xiàn)帶附件的定時發(fā)送郵件功能

    這篇文章主要為大家詳細介紹了Python3實現(xiàn)帶附件的定時發(fā)送郵件功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02

最新評論

天水市| 姚安县| 肇州县| 左权县| 林周县| 沁水县| 荣成市| 西宁市| 宜兰县| 观塘区| 宁夏| 麟游县| 米泉市| 东城区| 高碑店市| 永修县| 容城县| 壤塘县| 五原县| 同心县| 东兴市| 江门市| 上林县| 高碑店市| 丹寨县| 昆山市| 乌鲁木齐市| 乐山市| 宜丰县| 南皮县| 大英县| 南丹县| 泰来县| 都匀市| 白城市| 武宣县| 侯马市| 西充县| 定结县| 延寿县| 惠州市|