python docx 复制_99%的人都不知道的Python整理文件方法,效率提升100倍
現在人們經常要去下載或者接收一些文件。
比如說同事傳來的文檔,自己建立的文件,想看的電影等等,那大家都會怎么處理這些文件呢?
科研工作者、學生們可能需要閱讀大量的文獻,我們也需要閱讀很多的電子書等等,這些文件你又是如何處理的呢?
是一一歸類好,還是堆在一個文件夾里就算了?
以前我會按照文件的類型進行分類,并定期處理,但這個過程會耗費我大量的時間。
·圖片類型文件:有png格式的,有jpg格式的,有gif格式的。
·文檔文件:有pdf格式的,有知網上面caj格式的,還有有word文檔,分別是doc格式的和docx格式。
后來我在學python的過程中,就想到了這個小需求,能不能用python批量操作呢?這樣會減少我們的整理時間,能夠讓工作和學習效率更高。
經歷了一番和python的斗爭之后,我終于寫出來了這樣的一個小代碼。
既然要歸類,首先要建立對應的文件夾,這里面選擇使用python原生的os庫進行操作,要進行一系列的系統操作,選擇使用shutil庫。
import os
import shutil
我打算將我A文件夾下面的各個文件夾里面文件區分開,那首先要讓程序確定你的東西是在哪里。
要先寫一個path,我是給這些文件夾放在了F盤a,那我設置的path就是它,如果是別的目錄,就寫對應的路徑就好了。
path = “F:/A”
文檔的路徑圖例子如下:
此處劃重點:我們在程序中輸入的路徑和電腦系統中直接復制出來的路徑不同,如果直接用從電腦系統中復制出來的,會報錯。
有三種方法可以解決這個問題。
01:上面介紹的方法,將換成/即可;
02:將換成\即可,因為在python中是有特殊含義的,就是轉義符號, 那這個實際上這個\就是代表將轉義符號轉義成正常的;
03:在這一串字符串前面加r,變成r“F:A”,這樣的話,也可以正常使用。
這三種方法,逗汁兒更喜歡第一種~喜歡哪種方法就用哪種吧,但是在各種系統中第一種寫法都支持哦,強烈推薦第一種。
接下來就要在建立兩個文件夾,分別存儲圖片和文檔文件:
os.makedirs(path + ‘/tupian’)os.makedirs(path + ‘/wendang’)
裝文件的文件夾建好了,那我們就進行下一步,在移動文件之前需要確定要移動的文件有哪些,這個要根據什么判斷呢?
我們知道確定文件是什么類型的就是后綴名啦,那我們就讓程序知道什么后綴的屬于圖片文件,什么后綴的屬于文檔文件就好了。
img_list?= [‘png’,’jpg’,’gif’]wendang_list?= [‘doc’,’docx’,’caj’,’pdf’]
·建立好了兩個列表之后,就要進行循環來移動文件。
for?p?in wendang_list:
·首先要先要確定文檔所在文件夾,建立路徑
wendang_path= path +?'/'?+ p
·用os.listdir()來確定這個文件夾里面有什么東西(哪些是pdf,哪些是word文件)
wendang_files= os.listdir(wendang_path)
·利用循環來進行文件移動
for?i?in?wendang_files:?#真正的移動文件夾中的文件
·shuil.move的兩個參數分別表示,原來文件所在地以及要移動的位置
shutil.move(pdf_path +?'/'?+ i, path +?'/wendang')
·刪除原文件夾
os.removedirs(wendang_path)
這一部分就講文檔類的文件都移動進來了,那下一步就是將圖片類的文件移動進來。
for?i in img_list:
? ?img_path = path + ‘/’ + i
? ? ? img_files= os.listdir(img_path)
? ? ? for m in?img:
? ? ? ? ? ? ?shutil.move(img_path+’/’ +?m, path + ‘/tupian’)
? ? ? os.removedirs(img_path)
執行完以上代碼后文件夾如下圖所示:
(吐槽一下,這個xmind調了半天也沒調出來在正中間,讓我這個強迫癥很難受)
剛才在講解的過程中代碼相對比較亂,現在給一份完整版。
import osimport shutil#建立路徑
path = “F:/A”
os.makedirs(path + ‘/tupian’)
os.makedirs(path + ‘/wendang’)#建立后綴列表
img_list = [‘png’,’jpg’,’gif’]
wendang_list = [‘doc’,’docx’,’caj’,’pdf’]#移動文檔文件for p in wendang_list:
? ?wendang_path = path + '/' + p
? ?wendang_files = os.listdir(wendang_path)for i in wendang_files:
? ? ? ?shutil.move(pdf_path + '/' + i, path +'/wendang')
? ?os.removedirs(wendang_path)#移動圖片文件for i in img_list:
? ?img_path = path + ‘/’ + i
? ? ? img_files= os.listdir(img_path)
? ? ? for m in img:
? ? ? ? ? ? ?shutil.move(img_path+’/’ + m, path + ‘/tupian’)
? ? ? os.removedirs(img_path)
總結
以上是生活随笔為你收集整理的python docx 复制_99%的人都不知道的Python整理文件方法,效率提升100倍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stm32f105vct6例程_STM3
- 下一篇: 魏鹏机器人_痴迷农业科技,他发明智能分拣