Python根據(jù)文件后綴實(shí)現(xiàn)文件夾整理
文件類型字典
根據(jù)熵增原理,我們的文件夾在經(jīng)過(guò)一段時(shí)間之后會(huì)變得混亂不堪,尤其是桌面和下載文件夾,找個(gè)東西會(huì)十分費(fèi)勁,特別影響效率,所以用Python做一個(gè)文件夾整理小工具還是很有必要的。
而最常見(jiàn)的整理方法,就是按照文件類型,比如按照下表對(duì)文件進(jìn)行歸類
| 文件夾 | 文件類別 |
|---|---|
| 圖片 | “.jpg”, “.png”, “.jpeg”, “.gif” |
| 視頻 | “.mp4”, “.mkv” |
| 音樂(lè) | “.mp3”, “.wav” |
| 文檔 | “.pdf” |
| 文本 | “.csv”, “.txt” |
| 源碼 | “.py”, “.c”, “.cpp”, “.php” |
| office | “.docx”,“.xlsx”, “.pptx”, “.doc”, “.ppt”, “.xls” |
| 壓縮包 | “.zip”, “.tgz”, “.rar”, “.tar”, “.7z” |
| 安裝包 | “.msi”, “.exe” |
為了實(shí)現(xiàn)這個(gè)目標(biāo),可以先做一個(gè)文件類型字典,來(lái)綁定文件類型和后綴
fDct = {
"圖片" : [".jpg", ".png", ".jpeg", ".gif"],
"視頻" : [".mp4", ".mkv"],
"音樂(lè)" : [".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)建圖片、視頻等文件夾,然后通過(guò)文件的后綴找到其對(duì)應(yīng)的文件類別,然后移動(dòng)到相應(yīng)的文件夾。為了更加便捷地實(shí)現(xiàn)這個(gè)功能,做一個(gè)反向的字典,用以通過(guò)后綴返回文件夾
exDct = {}
for key in fDct:
exDct.update({ex:key for ex in fDct[key]})
移動(dòng)文件
接下來(lái)就是移動(dòng)文件,這里面有兩個(gè)問(wèn)題,一是目標(biāo)文件夾不存在,則需要新建;二則是目標(biāo)文件夾中已經(jīng)有了同名文件,那么則需要報(bào)錯(cuò)
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
主流程
接下來(lái)就是整個(gè)文件夾整理的主流程,第一步通過(guò)os.listdir得到所有文件名;第二步,遍歷所有文件名,如果這個(gè)文件名的后綴剛好就在我們的后綴字典中,那么就將這個(gè)文件移動(dòng)到對(duì)應(yīng)文件類型的文件夾里。
from pathlib import Path
# tar是準(zhǔn)備整理的文件夾
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 "全部文件移動(dòng)成功"
else:
return "以下文件移動(dòng)失?。篭r\n" + "\r\n".join(fsErr)
執(zhí)行效果如下,即下載文件夾中的文件都被移動(dòng)到這幾個(gè)文件夾夾中了。

以上就是Python根據(jù)文件后綴實(shí)現(xiàn)文件夾整理的詳細(xì)內(nèi)容,更多關(guān)于Python文件夾整理的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python參數(shù)傳遞中雙星號(hào)(**)和單星號(hào)(*)是作用
雙星號(hào)(**)和單星號(hào)(*)在參數(shù)傳遞中扮演著關(guān)鍵角色,本文主要介紹了Python參數(shù)傳遞中雙星號(hào)(**)和單星號(hào)(*)是作用,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05
Python hexstring-list-str之間的轉(zhuǎn)換方法
今天小編就為大家分享一篇Python hexstring-list-str之間的轉(zhuǎn)換方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
Python3.4 splinter(模擬填寫表單)使用方法
今天小編就為大家分享一篇Python3.4 splinter(模擬填寫表單)使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
python 實(shí)現(xiàn)turtle畫圖并導(dǎo)出圖片格式的文件
今天小編就為大家分享一篇python 實(shí)現(xiàn)turtle畫圖并導(dǎo)出圖片格式的文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
Python自動(dòng)化實(shí)現(xiàn)日?qǐng)?bào)數(shù)據(jù)可視化
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)自動(dòng)化生成日?qǐng)?bào)數(shù)據(jù)可視化,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02
數(shù)據(jù)庫(kù)連接池DBUtils的安裝使用方法
DBUtils是Python的一個(gè)用于實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接池的模塊,這篇文章主要介紹了數(shù)據(jù)庫(kù)連接池DBUtils的安裝使用方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03
Python圖像處理模塊ndimage用法實(shí)例分析
這篇文章主要介紹了Python圖像處理模塊ndimage用法,結(jié)合實(shí)例形式分析了Python圖像處理模塊ndimage基本功能及常見(jiàn)的圖形運(yùn)算操作實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-09-09

