本文要点在于使用Python标准库zipfile创建压缩文件时,如果使用'a'模式时,可以追加新内容。
from zipfile import ZipFile
from os import listdir
from os.path import isfile, isdir, join
def addFileIntoZipfile(srcDir, fp):
#遍历该文件夹中所有文件
for subpath in listdir(srcDir):
subpath = join(srcDir, subpath)
if isfile(subpath):
#如果是文件就直接压缩到ZIP文件
fp.write(subpath)
elif isdir(subpath):
#如果是子文件夹就先写入子文件夹名
#然后再递归调用函数
#把所有文件都压缩进入ZIP文件
fp.write(subpath)
addFileIntoZipfile(subpath, fp)
def zipCompress(srcDir, desZipfile):
with ZipFile(desZipfile, mode='a') as fp:
addFileIntoZipfile(srcDir, fp)
#测试函数功能
paths = [r'C:\python34\Scripts', r'C:\python34\Dlls', r'c:\eclipse']
for path in paths:
zipCompress(path, 'test.zip')