來源:Python爬蟲與資料探勘作者:崔豔飛一、前言大家好,我是崔豔飛。接到項目求助,需要對上千個資料夾中的檔案進行壓縮處理,並要刪除原始檔,只保留壓縮後的壓縮檔案,資料量大,手動完
2021-06-23 15:51:36
來源:Python爬蟲與資料探勘
作者:崔豔飛
一、前言
大家好,我是崔豔飛。接到項目求助,需要對上千個資料夾中的檔案進行壓縮處理,並要刪除原始檔,只保留壓縮後的壓縮檔案,資料量大,手動完成耗時耗力,用Python處理再合適不過了。
二、項目目標
批量對資料夾的內容進行壓縮處理,滿足客戶要求。
三、項目準備
軟體:PyCharm
需要的庫:os, shutil,zipfile
四、項目分析
1)如何讀取原始檔?
利用OS庫,獲取資料夾名list,利用for迴圈,輕鬆拿到要壓縮的原始檔。
2)如何進行壓縮處理?
利用zipfile庫中的zipfile.ZipFile()對獲取到的檔案進行壓縮處理。
3)如何刪除原始檔?
先利用os庫的remove()刪除檔案,再利用shutil庫的rmtree()刪除空資料夾。
五、項目實現
1、第一步匯入需要的三個庫
import os as os
import shutil
import zipfile
2、第二步定義刪除檔案函數和壓縮檔案函數
def del_(rootdir):filelist = [] filelist = os.listdir(rootdir) # 列出該目錄下的所有檔名 for f in filelist: filepath = os.path.join(rootdir, f) # 將檔名對映成絕對路勁 if os.path.isfile(filepath): # 判斷該檔案是否為檔案或者資料夾 os.remove(filepath) # 若為檔案,則直接刪除 elif os.path.isdir(filepath): shutil.rmtree(filepath, True) # 若為資料夾,則刪除該資料夾及資料夾內所有檔案 shutil.rmtree(rootdir, True)def zipDir(dirpath,outFullName): zip = zipfile.ZipFile(outFullName,"w",zipfile.ZIP_DEFLATED) for path,dirnames,filenames in os.walk(dirpath): # 去掉目標跟路徑,只對目標資料夾下邊的檔案及資料夾進行壓縮 fpath = path.replace(dirpath,'') for filename in filenames: zip.write(os.path.join(path,filename),os.path.join(fpath,filename)) zip.close()
3、第三步創建主函數
def main():path_end = 'D:/a/h/' date= os.listdir(path_end) # 獲取目標資料夾所有資料夾名列表 for f in date: ljbc='D:/a/h/'+f+'/'+'查詢資訊.zip' ljbc2 = 'D:/a/h/' + f + '/' + '下發修改.zip' #以上兩行是創建壓縮後的檔名 ljcx='D:/a/h/'+f+'/查詢資訊' ljxf = 'D:/a/h/' + f + '/下發修改' #以上兩行是要壓縮的原始檔 zipDir(ljcx,ljbc) zipDir(ljxf, ljbc2) del_(ljcx) del_(ljxf) if __name__ == '__main__': main()
六、效果展示
1、處理後的資料夾:
2、處理後的資料夾內的壓縮檔案:
七、總結
本文介紹瞭如何利用Python對大批量的檔案進行批量壓縮處理,其實就是幾行語句就能實現,程式寫好後,不到1分鐘就能完成1個人1天也不可能完成的任務。人生苦短,要用Python!
相關文章
來源:Python爬蟲與資料探勘作者:崔豔飛一、前言大家好,我是崔豔飛。接到項目求助,需要對上千個資料夾中的檔案進行壓縮處理,並要刪除原始檔,只保留壓縮後的壓縮檔案,資料量大,手動完
2021-06-23 15:51:36
賈浩楠 發自 凹非寺量子位 報道 | 公眾號 QbitAI合抱之木,生於毫末,九層之臺,起於累土。2021年行至半年,名字源自上述國學經典的自動駕駛公司毫末智行,不斷引發業內外熱議。因為
2021-06-23 15:51:25
在半導體材料領域,日本領先地位明顯,牢牢卡住全球晶片產業的脖子。尤其是在氟化氫、氫氟酸領域,日本更是實現了高度壟斷。氫氟酸是半導體制造所需的關鍵材料,主要用於清洗晶圓表
2021-06-23 15:50:20
ASPX 檢視引擎是在 ASP.NET MVC 中構建的傳統檢視引擎。Razor 檢視引擎更高階,現在是 ASP.NET Core MVC 的預設檢視引擎。本文簡要比較了這兩種檢視引擎,然後討論如何在 ASP.N
2021-06-23 15:32:05
說實話,一個小白每次看到「增長黑客」四個字,都有些望而卻步。就好比那本武林祕籍——《葵花寶典》,練成就能獨步武林,但翻開第一頁,那句「欲練此功,必先自宮」,不知道嚇退了多少人
2021-06-23 15:30:02
機器之心專欄作者:汪寧非來自加州大學爾灣分校(UC Irvine)的研究者發現,L4 自動駕駛裡用的最廣泛的用來提高系統魯棒性的多感測器融合感知(Multi-Sensor Fusion based Perception
2021-06-23 15:29:54