Python實(shí)現(xiàn)文件夾整理下載
文件類型字典
根據(jù)熵增原理,我們的文件夾在經(jīng)過一段時(shí)間之后會(huì)變得混亂不堪,尤其是桌面和下載文件夾,找個(gè)東西會(huì)十分費(fèi)勁,特別影響效率,所以用Python做一個(gè)文件夾整理小工具還是很有必要的。
而最常見的整理方法,就是按照文件類型,為了實(shí)現(xiàn)這個(gè)目標(biāo),可以先做一個(gè)文件類型字典,來綁定文件類型和后綴
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)建圖片、視頻等文件夾,然后通過文件的后綴找到其對(duì)應(yīng)的文件類別,然后移動(dòng)到相應(yīng)的文件夾。為了更加便捷地實(shí)現(xiàn)這個(gè)功能,做一個(gè)反向的字典,用以通過后綴返回文件夾
exDct = {} for key in fDct: exDct.update({ex:key for ex in fDct[key]})
移動(dòng)文件
接下來就是移動(dòng)文件,這里面有兩個(gè)問題,一是目標(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
主流程
接下來就是整個(gè)文件夾整理的主流程,第一步通過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è)文件夾夾中了。
到此這篇關(guān)于Python實(shí)現(xiàn)文件夾整理下載的文章就介紹到這了,更多相關(guān)Python文件夾整理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python3+PyQT5+Pyserial 實(shí)現(xiàn)簡單的串口工具方法
今天小編就為大家分享一篇使用Python3+PyQT5+Pyserial 實(shí)現(xiàn)簡單的串口工具方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-02-02Python實(shí)現(xiàn)視頻中添加音頻工具詳解
本文主要為大家介紹了Python中提供在無音頻的視頻中添加音頻的工具詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考一下2021-12-12調(diào)用其他python腳本文件里面的類和方法過程解析
這篇文章主要介紹了調(diào)用其他python腳本文件里面的類和方法過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11PyTorch常用函數(shù)torch.cat()中dim參數(shù)使用說明
這篇文章主要為大家介紹了PyTorch常用函數(shù)torch.cat()中dim參數(shù)使用說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Python的“二維”字典 (two-dimension dictionary)定義與實(shí)現(xiàn)方法
這篇文章主要介紹了Python的“二維”字典 (two-dimension dictionary)定義與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Python模擬實(shí)現(xiàn)類似二維數(shù)組形式的二維字典功能,需要的朋友可以參考下2016-04-04關(guān)于你不想知道的所有Python3 unicode特性
我的讀者知道我是一個(gè)喜歡痛罵Python3 unicode的人。這次也不例外。我將會(huì)告訴你用unicode有多痛苦和為什么我不能閉嘴。我花了兩周時(shí)間研究Python3,我需要發(fā)泄我的失望。在這些責(zé)罵中,仍然有有用的信息,因?yàn)樗涛覀內(nèi)绾蝸硖幚鞵ython3。如果沒有被我煩到,就讀一讀吧2014-11-11