批量壓縮資料夾-Python程式-效果演示
阿新 • • 發佈:2021-10-02
# -*- coding: utf-8 -*- # Version: Python 3.9.7 # Author: TRIX # Date: 2021-10-02 13:20:04 # Use: 批量壓縮指定資料夾 為zip壓縮包 import zipfile from os import path,walk,chdir def zipFiles(pathsList):#需要壓縮的資料夾 或 檔案列表 for i,r in enumerate(pathsList,1): if path.isfile(r):#如果是檔案 fDir,fName=path.split(r) fPre,fSuf=path.splitext(fName) chdir(fDir)#改變當前工作目錄 zipPath=fDir+'\\'+fPre+'.zip'#壓縮包路徑 zipObj = zipfile.ZipFile(zipPath, 'w', zipfile.ZIP_DEFLATED)#以 deflate壓縮演算法 w模式 建立zip物件 zipObj.write(fName) zipObj.close() else:#如果是資料夾 chdir(r)#改變當前工作目錄 fDir,fName=path.split(r) fPre,fSuf=path.splitext(fName) zipPath=fDir+'\\'+fName+'.zip' zipObj = zipfile.ZipFile(zipPath, 'w', zipfile.ZIP_DEFLATED)#以 deflate壓縮演算法 w模式 建立zip物件 for p, dirs, files in walk(r): for name in files:#拼接檔名 zPath=path.join(p, name).replace(r+'\\','') zipObj.write(zPath) for name in dirs:#拼接目錄名 zPath=path.join(p, name).replace(r+'\\','') zipObj.write(zPath) zipObj.close() print('第{}個資料夾壓縮完畢,儲存路徑{}'.format(i,zipPath)) pathsList=[ r'D:\[download]\forTest\folder_for_test\FFT1', r'D:\[download]\forTest\folder_for_test',r'D:\[download]\forTest\folder_for_test\新建 Microsoft Excel 工作表.xlsx'] zipFiles(pathsList)