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解放程式設計師雙手的自動生成程式碼程式設計師
- Python自動化爬取小說,解放你的雙手Python
- MyBatis Generator 程式碼自動生成器,從此解放你的雙手MyBatis
- 解放雙手 | Jenkins + gitlab + maven 自動打包部署專案JenkinsGitlabMaven
- python——幾行程式碼,偷偷複製U盤檔案到電腦Python行程
- Umbrella for mac(重複檔案清理軟體)Mac
- App 端自動化的最佳方案,完全解放雙手!APP
- 分享一下我的三個程式碼自動生成工具類–助你解放雙手
- 分享一下我的三個程式碼自動生成工具類--助你解放雙手
- shell 備份檔案指令碼+自動清理指令碼
- Advanced Duplicate Cleaner for mac - 智慧重複檔案清理Mac
- 解放雙手,基於github travis-ci docker自動化部署java專案GithubDockerJava
- 怎麼快速複製移動大量電腦檔案?
- 自動化代替重複勞動、解放銷售的神器-Zoho CRM系統
- win10 c盤微信檔案怎麼清理_win10電腦微信個人磁碟如何清理Win10
- 電腦window10怎麼清理垃圾 win10系統清理垃圾檔案的步驟Win10
- 電腦用bat指令碼給手機批量自動安裝apk檔案 autoInstall.batBAT指令碼APK
- shell指令碼自動清理超過指定大小的檔案指令碼
- Shell批量複製或執行檔案(自動輸入密碼)密碼
- 10 個解放雙手超實用線上工具,有些程式碼真的不用手寫
- 重複檔案查詢清理工具Duplicate File Finder pro
- 自動搶紅包,點贊朋友圈,AccessibilityService解放你的雙手
- 解放程式設計師雙手之Supervisor程式設計師
- 手機QQ怎麼檢視電腦檔案 手機QQ獲得電腦檔案方法
- win10電腦移動和複製檔案的速度太慢怎麼辦Win10
- Duplicate Finder and Cleaner for mac(重複檔案清理工具)1.2直裝Mac
- win10系統無限自動修復怎麼辦 win10電腦不斷重複自動修復解決方法Win10
- Emacs自動識別檔案程式碼Mac
- 根據手機還是電腦上網自動判斷跳轉程式碼
- 重複照片清理工具PhotoSweeper X ,如何清理重複圖片
- Mac電腦複製,移動和刪除檔案mageRanger使用技巧MacRanger
- 10個 解放雙手的 IDEA 外掛,這些程式碼都不用寫(第二彈)Idea
- win10電腦如何快速傳檔案 win10電腦互傳大檔案Win10
- Win10怎樣自動清理回收站和臨時檔案 win10設定自動清理回收站和臨時檔案的步驟Win10
- 解放雙手 - Android 開發應該嘗試的 UI 自動化測試AndroidUI
- 用好軟體清理電腦內部垃圾(轉)
- 解放雙手!這個外掛只要一張表就能生成CRUD程式碼
- 電腦一直自動重啟怎麼辦?電腦一直自動重啟的原因和解決辦法