Python根據(jù)文件后綴實現(xiàn)文件夾整理
文件類型字典
根據(jù)熵增原理,我們的文件夾在經(jīng)過一段時間之后會變得混亂不堪,尤其是桌面和下載文件夾,找個東西會十分費勁,特別影響效率,所以用Python做一個文件夾整理小工具還是很有必要的。
而最常見的整理方法,就是按照文件類型,比如按照下表對文件進行歸類
文件夾 | 文件類別 |
---|---|
圖片 | “.jpg”, “.png”, “.jpeg”, “.gif” |
視頻 | “.mp4”, “.mkv” |
音樂 | “.mp3”, “.wav” |
文檔 | “.pdf” |
文本 | “.csv”, “.txt” |
源碼 | “.py”, “.c”, “.cpp”, “.php” |
office | “.docx”,“.xlsx”, “.pptx”, “.doc”, “.ppt”, “.xls” |
壓縮包 | “.zip”, “.tgz”, “.rar”, “.tar”, “.7z” |
安裝包 | “.msi”, “.exe” |
為了實現(xiàn)這個目標,可以先做一個文件類型字典,來綁定文件類型和后綴
fDct = { "圖片" : [".jpg", ".png", ".jpeg", ".gif"], "視頻" : [".mp4", ".mkv"], "音樂" : [".mp3", ".wav"], "文檔" : [".pdf"], "文本" : [".csv", ".txt"], "源碼" : [".py", ".c", ".cpp", ".php"], "office": [".docx",".xlsx", ".pptx", ".doc", ".ppt", ".xls"], "壓縮包": [".zip", ".tgz", ".rar", ".tar", ".7z"], "安裝包": [".msi", ".exe"], }
而文件整理的邏輯是,先創(chuàng)建圖片、視頻等文件夾,然后通過文件的后綴找到其對應的文件類別,然后移動到相應的文件夾。為了更加便捷地實現(xiàn)這個功能,做一個反向的字典,用以通過后綴返回文件夾
exDct = {} for key in fDct: exDct.update({ex:key for ex in fDct[key]})
移動文件
接下來就是移動文件,這里面有兩個問題,一是目標文件夾不存在,則需要新建;二則是目標文件夾中已經(jīng)有了同名文件,那么則需要報錯
import os import shutil pJoin = os.path.join pExist = os.path.exists def mvFile(src, dst): if not pExist(dst): os.makedirs(dst) try: shutil.move(src, dst) return True except Exception as e: print(e) return False
主流程
接下來就是整個文件夾整理的主流程,第一步通過os.listdir得到所有文件名;第二步,遍歷所有文件名,如果這個文件名的后綴剛好就在我們的后綴字典中,那么就將這個文件移動到對應文件類型的文件夾里。
from pathlib import Path # tar是準備整理的文件夾 def sortFiles(tar): files = os.listdir(tar) fsErr = [] for f in files: src = pJoin(tar, f) ex = Path(src).suffix.lower() if ex not in exDct: continue dst = pJoin(tar, exDct[ex]) if not mvFile(src, dst): fsErr.append(src) if len(fsErr) == 0: return "全部文件移動成功" else: return "以下文件移動失?。篭r\n" + "\r\n".join(fsErr)
執(zhí)行效果如下,即下載文件夾中的文件都被移動到這幾個文件夾夾中了。
以上就是Python根據(jù)文件后綴實現(xiàn)文件夾整理的詳細內(nèi)容,更多關(guān)于Python文件夾整理的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python參數(shù)傳遞中雙星號(**)和單星號(*)是作用
雙星號(**)和單星號(*)在參數(shù)傳遞中扮演著關(guān)鍵角色,本文主要介紹了Python參數(shù)傳遞中雙星號(**)和單星號(*)是作用,具有一定的參考價值,感興趣的可以了解一下2024-05-05Python hexstring-list-str之間的轉(zhuǎn)換方法
今天小編就為大家分享一篇Python hexstring-list-str之間的轉(zhuǎn)換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06Python3.4 splinter(模擬填寫表單)使用方法
今天小編就為大家分享一篇Python3.4 splinter(模擬填寫表單)使用方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10python 實現(xiàn)turtle畫圖并導出圖片格式的文件
今天小編就為大家分享一篇python 實現(xiàn)turtle畫圖并導出圖片格式的文件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python自動化實現(xiàn)日報數(shù)據(jù)可視化
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)自動化生成日報數(shù)據(jù)可視化,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2025-02-02