利用 Python 一鍵整理電腦桌面、文件夾,瞬間清爽了
關(guān)注+星標(biāo),每天學(xué)習(xí)Python新技能
大家好,我是小碼哥。今天分享一個小技能:
隨時間流逝,文件夾下的文件可能雜亂無章,如下圖:

如果我們用手動移動處理的方式,這將是非常耗時和無論的事情。
為了提升效率,我們利用Python可以輕松整理文件夾,以按照文件類型存放在指定文件夾下,比如把所有文檔 ‘docx’存放在文件夾 “文檔”下,效果如下:

01
定義一個函數(shù)處理各種文件
01 import os
02 import shutil
03
04 def moveFile(srcfile, fileType, srcPath, destPath):
05 '''
06 移動文件srcfile到指定目錄 destPath
07 srcPath是原來的文件夾
08 fileType是文件類型
09 '''
10 # 判斷擴展名是否是WORD
11 if os.path.splitext(srcfile)[1] == fileType:
12 print(f'將要移動 {i}')
13 # 判斷目的文件夾是否存在
14 if os.path.exists(destPath):
15 # 拼接文件 srcfile 的絕對路徑
16 fileName = os.path.join(srcPath, srcfile)
17 shutil.move(fileName, destPath)
18 else:
19 os.makedirs(destPath) # 不存在則創(chuàng)建
20 # 創(chuàng)建完文件夾之后在移動
21 fileName = os.path.join(srcPath,i)
22 shutil.move(fileName, destPath)
第1行代碼是導(dǎo)入os模塊
第2行代碼是導(dǎo)入高級文件處理模塊 shutil。它與模塊os功能互補,主要功能包含復(fù)制、移動、重命名和刪除文件以目錄。這里主要使用shutil模塊的move(src,dst)方法。它的功能是將文件src移動到dst下。如果dst是一個目錄,將文件移動到目錄之下;如果dst是一個文件名稱,則將文件移動到目標(biāo)目錄下,并且重命名為dst。在本例中,我們的dst是文件夾,表示把文件移動到dst之下。
第4-22行代碼是定義函數(shù)moveFile()。它的作用是真正實現(xiàn)整理文件夾的功能,把不同類型的文件移動到指定的文件夾。
第4行代碼是用關(guān)鍵字def定義函數(shù)moveFile(srcfile, fileType, srcPath, destPath)。它包含4個參數(shù),含義如下:
參數(shù)srcfile是指需要移動的文件名字,比如 ‘古詩詞.docx’等
參數(shù)fileType是指文件srcfile的類型,比如 ‘docx’等
參數(shù)srcPath是指存放文件srcfile的原來目錄
參數(shù)destPath是指將要移動到的目標(biāo)目錄。
第11行代碼是4.2.2節(jié)中的內(nèi)容。它的目的是判斷文件srcfile的類型是否是 fileType。
第14-22行代碼是if-else結(jié)構(gòu)。它是用os.path.exists(destPath)方法判斷目標(biāo)目錄destPath是否在存在。如果不存在,我們在第19行代碼用os方法的makedirs(destPath)創(chuàng)建。
第16行代碼是用os.path.join(srcPath, srcfile)方法拼接文件的路徑。也就是查找文件srcfile原來的路徑,比如文件 ‘古詩詞.docx’的路徑是 ‘F:\零基礎(chǔ)輕松學(xué) Python 辦公自動化\python_do_file\第4章\data\古詩詞.docx’,并用fileName表示拼接后的路徑。
第17行代碼是用shutil.move(fileName, destPath)方法把拼接后的文件路徑fileName移動到目標(biāo)目錄destPath下。
第21和22行代碼同16和17行代碼。
02
定義移動文件的路徑
25 # 目錄路徑。絕對路徑或者相對路徑均可
26 srcPath = r'F:\零基礎(chǔ)輕松學(xué) Python 辦公自動化\python_do_file\第4章\data'
27
28 # 不同類型的文件路徑
29 DirPPT=r"F:\零基礎(chǔ)輕松學(xué) Python 辦公自動化\python_do_file\第4章\generated_data\演講文稿"
30 DirWord=r'F:\零基礎(chǔ)輕松學(xué) Python 辦公自動化\python_do_file\第4章\generated_data\文檔'
31 DirExcel=r'F:\零基礎(chǔ)輕松學(xué) Python 辦公自動化\python_do_file\第4章\generated_data\銷售數(shù)據(jù)'
32 DirPic=r'F:\零基礎(chǔ)輕松學(xué) Python 辦公自動化\python_do_file\第4章\generated_data\圖片'
33 DirText=r'F:\零基礎(chǔ)輕松學(xué) Python 辦公自動化\python_do_file\第4章\generated_data\文本文件'
34
35 # 查看所有的文件與文件夾
36 allFile = os.listdir(srcPath)
第26行代碼是用變量srcPath表示文件的絕對路徑。也就是我們將要整理的文件夾。讀者可以任意修改路徑名字。
第29-33行代碼是為不同類型的文件指定不同的文件夾,比如為文檔類型的文件指定文件夾 ‘F:\零基礎(chǔ)輕松學(xué) Python 辦公自動化\python_do_file\第4章\generated_data\文檔’,并用變量DirWord表示。這里的路徑都是絕對路徑,讀者可以任意修改。
第36行代碼是查看目錄srcPath下的所有文件與文件夾,并用變量allFile表示。
03
利用 For 循環(huán)實現(xiàn)移動文件
38 # 移動指定類型文件到指定文件夾
39 for i in allFile:
40 # 移動所有 PPT文件到 DirPPT
41 moveFile(i, '.pptx', srcPath, DirPPT)
42 # 移動所有 word文件 DirWord
43 moveFile(i, '.docx', srcPath, DirWord)
44 # 移動所有 excel 文件 DirExcel
45 moveFile(i, '.xlsx', srcPath, DirExcel)
46 # 移動所有 PNG 文件 PIC
47 moveFile(i, '.png', srcPath, DirText)
48 # 移動所有 text 文件 PIC
49 moveFile(i, '.text', srcPath, DirText)
第39-49行代碼是用for循環(huán)處理目錄srcPath下所有文件,并用變量i表示每一個文件。
第41行代碼是調(diào)用移動文件的函數(shù)moveFile(i, '.pptx', srcPath, DirPPT)。通過第4行代碼,它需要4個形式參數(shù)。因此,我們調(diào)用的時候也用了4個參數(shù),并且稱為實際參數(shù),分別是需要移動的文件i、文件類型 ‘.pptx’、需要整理的文件夾srcPath以及目的文件夾DirPPT。這一行代碼是把文件i移動到ppt目錄下。
同理,第42-49行代碼是把不同類型的文件移動到不同的文件夾。讀者可以修改這個參數(shù)的調(diào)用參數(shù)以移動更多類型的文件到指定文件夾。
04
運行上述代碼,輸出結(jié)果如下:
將要移動 11.5-案例.docx
將要移動 12.5.2-轉(zhuǎn)化表格為一個excel文件.xlsx
將要移動 14.4.3-添加標(biāo)題.pptx
將要移動 14.4.4-添加文本框.pptx
將要移動 14.4.4.2-插入段落.pptx
將要移動 14.4.5-添加圖片.pptx
將要移動 14.4.5_多個幻燈片添加圖片.pptx
將要移動 3.5.1-統(tǒng)計文字出現(xiàn)的次數(shù).text
將要移動 3.5.2-大小寫轉(zhuǎn)化.text
將要移動 古詩詞.docx
將要移動 完美解決.png
將要移動 實戰(zhàn)圈.png
將要移動 租客信息匯總.xlsx
將要移動 租房合同模板.docx
查看文件夾 ‘generated_data’,同類型的文件被整理在同一個文件夾下,比如文檔文件夾下是‘docx’類型文件,如上圖所示。
是不是很簡單?趕快試一下吧!

推薦小碼哥新書!
小碼哥新手《Python + Excel/Word/PPT一本通》正式上市了!書中詳細(xì)介紹了零基礎(chǔ)用Python實現(xiàn)辦公自動化的各方面知識,提高職場辦公效率,附贈PPT/源代碼/重點教學(xué)視頻講解和作者VIP一對一指導(dǎo)。
內(nèi)容介紹:《Python + Excel/Word/PPT 一本通》內(nèi)容介紹
掃碼購買
▼點擊閱讀原文,了解本書詳情~

