Python腳本實(shí)現(xiàn)一鍵自動(dòng)整理辦公文件
導(dǎo)語(yǔ):
舉例:Python做一個(gè)根據(jù)后綴名整理文件的工具,先來(lái)看看效果:
自動(dòng)整理前:

自動(dòng)整理后:

這樣看起來(lái)就好很多了。
1.準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒(méi)有,可以訪問(wèn)這篇文章:python Windows最新版本安裝教程
我們只需要修改源代碼主程序中調(diào)用 auto_organize函數(shù)的參數(shù)即可完成對(duì)對(duì)應(yīng)文件夾的整理,比如我想整理 C:\Users\83493\Downloads 文件夾:
if __name__ == "__main__": ? ? auto_organize(r"C:\Users\83493\Downloads")
如上所示:修改代碼第61行的文件夾地址即可。修改完成后運(yùn)行該腳本:
python auto_files.py
就能瞬間完成對(duì)指定文件夾的整理,極其方便。

2.原理
這份代碼的原理很簡(jiǎn)單,為了整理這些文件,我們要遍歷當(dāng)前指定的文件夾:如果是文件夾則跳過(guò),如果是文件則檢測(cè)后綴,分類到對(duì)應(yīng)的文件夾中。文件夾名字及其對(duì)應(yīng)的文件后綴如下:
DIRECTORIES = {
? ? "圖片": [".jpeg", ".jpg", ".tiff", ".gif", ".bmp", ".png", ".bpg", "svg",
? ? ? ? ? ? ? ?".heif", ".psd"],
? ? "視頻": [".avi", ".flv", ".wmv", ".mov", ".mp4", ".webm", ".vob", ".mng",
? ? ? ? ? ? ? ?".qt", ".mpg", ".mpeg", ".3gp", ".mkv"],
? ? "文檔": [".oxps", ".epub", ".pages", ".docx", ".doc", ".fdf", ".ods",
? ? ? ? ? ? ? ? ? ".odt", ".pwi", ".xsn", ".xps", ".dotx", ".docm", ".dox",
? ? ? ? ? ? ? ? ? ".rvg", ".rtf", ".rtfd", ".wpd", ".xls", ".xlsx", ".ppt",
? ? ? ? ? ? ? ? ? "pptx",".csv",".pdf"],
? ? "壓縮文件": [".a", ".ar", ".cpio", ".iso", ".tar", ".gz", ".rz", ".7z",
? ? ? ? ? ? ? ? ?".dmg", ".rar", ".xar", ".zip"],
? ? "影音": [".aac", ".aa", ".aac", ".dvf", ".m4a", ".m4b", ".m4p", ".mp3",
? ? ? ? ? ? ? ".msv", "ogg", "oga", ".raw", ".vox", ".wav", ".wma"],
? ? "文本": [".txt", ".in", ".out"],
? ? "編程": [".py",".html5", ".html", ".htm", ".xhtml",".c",".cpp",".java",".css"],
? ? "可執(zhí)行程序": [".exe"],
}接下來(lái)是自動(dòng)整理的部分代碼,先遍歷指定的文件夾,識(shí)別后綴并分類到對(duì)應(yīng)的文件夾中。
for entry in os.scandir(dirval): ? ? if entry.is_dir(): ? ? ? ? # 如果是文件夾則跳過(guò) ? ? ? ? continue ? ? file_path = Path(dirval + "\\" + entry.name) ? ? file_format = file_path.suffix.lower() ? ? # 避免后綴大小寫判斷問(wèn)題,全轉(zhuǎn)為小寫 ? ? if file_format in FILE_FORMATS: ? ? ? ? directory_path = Path(dirval + "\\" + FILE_FORMATS[file_format]) ? ? ? ? directory_path.mkdir(exist_ok=True) ? ? ? ? file_path.rename(directory_path.joinpath(entry.name))
還有出現(xiàn)不存在在我們字典里的后綴的情況,把它們分類到名為 其他文件 的文件夾中:
try:
? ? os.mkdir(dirval + "\\" +"其他文件")
except:
? ? pass
?
for dir in os.scandir(dirval):
? ? try:
? ? ? ? if dir.is_dir():
? ? ? ? ? ? # 刪除空文件夾
? ? ? ? ? ? os.rmdir(dir)
? ? ? ? else:
? ? ? ? ? ? temp = str(Path(dir)).split('\\')
? ? ? ? ? ? # 分割文件路徑
? ? ? ? ? ? path = '\\'.join(temp[:-1])
? ? ? ? ? ? print(path + '\\其他文件\\' + str(temp[-1]))
? ? ? ? ? ? os.rename(str(Path(dir)), path + '\\其他文件\\' + str(temp[-1]))
? ? except:
? ? ? ? pass3.自定義整理
如果你并不想按照設(shè)定好的文件整理,希望能自定義地將某些特定后綴的文件放到另一個(gè)文件夾,比如 .py 文件統(tǒng)一收納到“Python腳本”文件夾中,你可以這么改 DIRECTORIES 變量:
DIRECTORIES = {
? ? # ......
? ? "編程": [".py",".html5", ".html", ".htm", ".xhtml",".c",".cpp",".java",".css"],
? ? # ......
}改動(dòng)后:
DIRECTORIES = {
? ? # ......
? ? "編程": [".html5", ".html", ".htm", ".xhtml",".c",".cpp",".java",".css"],
? ? "Python腳本": [".py"],
? ? # ......
}我們可以按照這個(gè)方法,自定義收納那些你需要整理收納的文件格式。
如果只想對(duì) DIRECTORIES 變量里那些后綴的文件進(jìn)行整理,不屬于這些后綴的文件則不進(jìn)行整理,不需要放到“其他文件”目錄下,此時(shí)要怎么做?
很簡(jiǎn)單,你只需要?jiǎng)h除以下部分代碼就可以完成這個(gè)功能:
try:
? ? ? ? os.mkdir(dirval + "\\" +"其他文件")
? ? except:
? ? ? ? pass
?
? ? for dir in os.scandir(dirval):
? ? ? ? try:
? ? ? ? ? ? if dir.is_dir():
? ? ? ? ? ? ? ? # 刪除空文件夾
? ? ? ? ? ? ? ? os.rmdir(dir)
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? temp = str(Path(dir)).split('\\')
? ? ? ? ? ? ? ? # 分割文件路徑
? ? ? ? ? ? ? ? path = '\\'.join(temp[:-1])
? ? ? ? ? ? ? ? print(path + '\\其他文件\\' + str(temp[-1]))
? ? ? ? ? ? ? ? os.rename(str(Path(dir)), path + '\\其他文件\\' + str(temp[-1]))
? ? ? ? except:
? ? ? ? ? ? pass
# ......小編覺(jué)得這樣就很方便。
到此這篇關(guān)于Python實(shí)現(xiàn)腳本一鍵自動(dòng)整理辦公文件的文章就介紹到這了,更多相關(guān)Python實(shí)現(xiàn)自動(dòng)整理文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Python 中的 defaultdict 數(shù)據(jù)類型
這篇文章主要介紹了Python 中的 defaultdict 數(shù)據(jù)類型,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Python中input()函數(shù)的用法實(shí)例小結(jié)
我們編寫的大部分程序,都需要讀取輸入并對(duì)其進(jìn)行處理,而基本的輸入操作是從鍵盤鍵入數(shù)據(jù),Python從鍵盤鍵入數(shù)據(jù),大多使用其內(nèi)置的input()函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python中input()函數(shù)用法的相關(guān)資料,需要的朋友可以參考下2022-03-03
Python使用Tkinter實(shí)現(xiàn)滾動(dòng)抽獎(jiǎng)器效果
Tkinter 是 Python 的標(biāo)準(zhǔn) GUI(Graphical User Interface,圖形用戶接口)庫(kù),Python 使用 Tkinter 可以快速地創(chuàng)建 GUI 應(yīng)用程序。這篇文章主要介紹了Python使用Tkinter實(shí)現(xiàn)滾動(dòng)抽獎(jiǎng)器,需要的朋友可以參考下2020-01-01
pandas中iloc函數(shù)的具體實(shí)現(xiàn)
iloc是Pandas中用于基于整數(shù)位置進(jìn)行索引和切片的方法,本文主要介紹了pandas中iloc函數(shù)的具體實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
python中的easy_install工具,類似于Php中的pear,或者Ruby中的gem,或者Perl中的cpan,那是相當(dāng)?shù)乃嵬崃巳绻胧褂?/div> 2013-02-02
Python協(xié)程 yield與協(xié)程greenlet簡(jiǎn)單用法示例
這篇文章主要介紹了Python協(xié)程 yield與協(xié)程greenlet簡(jiǎn)單用法,簡(jiǎn)要講述了協(xié)程的概念、原理,并結(jié)合實(shí)例形式分析了Python協(xié)程 yield與協(xié)程greenlet基本使用方法,需要的朋友可以參考下2019-11-11
Python MySQL數(shù)據(jù)庫(kù)基本操作及項(xiàng)目示例詳解
這篇文章主要介紹了Python連接MySQL數(shù)據(jù)庫(kù)后的一些基本操作,并以銀行管理系統(tǒng)項(xiàng)目為例,為大家具體介紹了一下部分功能的實(shí)現(xiàn),文中的示例代碼具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解一下2021-12-12最新評(píng)論

