10行Python程式碼自動清理電腦內重複檔案,解放雙手!
大家好,又到了Python辦公自動化系列。
今天分享一個系統層面的自動化案例:
**很多人學習python,不知道從何學起。
很多人學習python,掌握了基本語法過後,不知道在哪裡尋找案例上手。
很多已經做案例的人,卻不知道如何去學習更加高深的知識。
那麼針對這三類人,我給大家提供一個好的學習平臺,免費領取視訊教程,電子書籍,以及課程的原始碼!
小編整理了一些Python學習內容,我把它推薦給你!Python資料+Qun 69286 - 7294 就能獲得全部資料!免費學習視訊+專案原始碼,並且在學習的過程中,還可以參與我們的訓練營學習!
「給定一個資料夾,使用Python檢查給定資料夾下有無檔案重複,若存在重複則刪除」
主要涉及的知識點有:
-
os
模組綜合應用 -
glob
模組綜合應用 -
利用
filecmp
模組比較兩個檔案
步驟分析
該程式實現的邏輯可以具化為:
遍歷獲取給定資料夾下的所有檔案,然後通過巢狀迴圈兩兩比較檔案是否相同,如果相同則刪除後者。
實現問題的關鍵就變成了:point_down:
如何判斷兩個檔案是否相同?
在這裡我們可以使用 filecmp
模組,來看看官方的介紹文件:
-
filecmp.cmp(f1, f2, shallow=True)
-
比較名為f1和f2的檔案,如果它們似乎相等則返回
True
,否則返回False
-
如果
shallow
為真,那麼具有相同os.stat()
簽名的檔案將會被認為是相等的。否則,將比較檔案的內容。
所以可以這樣使用:point_down:
解決了這個問題,我們就可以開始寫程式碼了!
Python實現
匯入需要的庫並設定目標資料夾路徑
接著遍歷獲取所有檔案的 絕對路徑
,我們可以利用 glob
模組的萬用字元結合 recursive
引數即可完成,框架如下:
由於遍歷獲取每一個檔案或者資料夾後,需要判斷是否是檔案,如果是檔案則可能將絕對路徑存放到列表中,這裡需要再完成兩個事情:
-
首先建立一個空列表,後面用
list.append(i)
新增檔案路徑 -
接著利用
os.path.isfile(i)
判斷是否是檔案,返回True
則執行新增元素的操作
具體程式碼如下
上一步我們獲取了目標資料夾下的所有檔案路徑,接下來就可以巢狀遍歷這個路徑列表,其中 filecmp.cmp
進行檔案判斷, os.remove
進行檔案刪除
這裡的程式碼已經實現了大致邏輯,但有一個細節需要考慮到:有可能迴圈到檔案已經被前面的判斷刪除了,導致 os.remove(file)
由於檔案不存在而報錯
因此,可以用 os.path.exists
對檔案存在進行判斷,如下所示:
這樣,一個簡易的檔案去重小程式就完成了,完整程式碼如下:
寫在最後
通過本文的Python自動化指令碼製作過程,我們可以再次體會Python辦公自動化的強大。
相關文章
- LR.Net解放程式設計師雙手的自動生成程式碼程式設計師
- 解放雙手 | Jenkins + gitlab + maven 自動打包部署專案JenkinsGitlabMaven
- python——幾行程式碼,偷偷複製U盤檔案到電腦Python行程
- Python自動化爬取小說,解放你的雙手Python
- MyBatis Generator 程式碼自動生成器,從此解放你的雙手MyBatis
- 解放雙手 hosts 自動化 (Vagrant-hostsupdater)
- Umbrella for mac(重複檔案清理軟體)Mac
- shell 備份檔案指令碼+自動清理指令碼
- Advanced Duplicate Cleaner for mac - 智慧重複檔案清理Mac
- 分享一下我的三個程式碼自動生成工具類--助你解放雙手
- 分享一下我的三個程式碼自動生成工具類–助你解放雙手
- App 端自動化的最佳方案,完全解放雙手!APP
- 解放雙手,基於github travis-ci docker自動化部署java專案GithubDockerJava
- 怎麼快速複製移動大量電腦檔案?
- “自動化測試解放雙手”,測試自動化好處大盤點!
- 重複檔案查詢清理工具Duplicate File Finder pro
- 解放程式設計師雙手之Supervisor程式設計師
- 自動化代替重複勞動、解放銷售的神器-Zoho CRM系統
- Duplicate Finder and Cleaner for mac(重複檔案清理工具)1.2直裝Mac
- 解放雙手,讓流程自動化軟體助你一臂之力
- 重複檔案查詢清理工具:Gemini 2 Mac中文版Mac
- 用python寫一個指令碼,讀取srt檔案中的內容,並列印出重複的內容,且將不重複的內容儲存到新檔案中Python指令碼
- 重複照片清理工具PhotoSweeper X ,如何清理重複圖片
- Mac電腦複製,移動和刪除檔案mageRanger使用技巧MacRanger
- 解放雙手 - Android 開發應該嘗試的 UI 自動化測試AndroidUI
- 解放雙手!這個外掛只要一張表就能生成CRUD程式碼
- 開源專案-跨專案及作業系統的通用程式碼生成器,解放您的雙手作業系統
- Mac電腦中重複檔案太多,不能很快查詢出來?試試這個Mac
- Windows電腦桌面檔案加密軟體怎麼選?企業電腦檔案生成自動加密方案,福建風奧科技Windows加密
- Flutter程式碼模板,解放雙手,提高開發效率必備| 掘金技術徵文Flutter
- 解放雙手!推薦一款阿里開源的低程式碼工具,YYDS!阿里
- 電腦一直自動重啟怎麼辦?電腦一直自動重啟的原因和解決辦法
- 解放雙手,自動生成“x.set(y.get)”,搞定vo2dto轉換
- 怎麼清理temp資料夾的臨時檔案?Win7系統電腦temp臨時檔案的清理方法Win7
- 10 個解放雙手超實用線上工具,有些程式碼真的不用手寫
- python多程式實現檔案海量複製Python
- Flutter 專案自增 build 號,不做重複勞動FlutterUI
- 電腦window10怎麼清理垃圾 win10系統清理垃圾檔案的步驟Win10