1. 程式人生 > 其它 >批量壓縮資料夾-Python程式-效果演示

批量壓縮資料夾-Python程式-效果演示

程式碼效果演示
Gitee原始碼

# -*- 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)