May-08-2018, 07:57 PM
I'm trying to use zipfile.ZipFile to create a zip file based on folders in a main path and then send those folders to their respective zip files. The zip files are being created but when I try using write(input, 'a') nothing is added to the zip file:
Please tell what I'm missing so I can add the folders to the respective zip files or if I'm going at this the wrong way.
import zipfile as zp
import os
# main directory containing folders to be zipped and archived
mDir = r"P:\2018"
# ouput archive directory to conatin compressed zip files
oDir = r" P:\2018\Archive"
# get list of folders to archive
inlst = os.listdir(mDir)
# exclude the Archive folder from inlst
inlst = inlst[1:]
# loop through the list of folders
for folder in inlst:
name = os.path.join(oDir, ("{0}{1}".format(folder,".zip")))
inP = os.path.join(mDir,folder)
# make a zip archive for each folder in mDir to go into the "Archive" folder
with zp.ZipFile(name,'w') as myzip:
myzip.write(inP)
# add current folder to current zip archive that was just creted in previous step
with zp.ZipFile(name,'a') as myzip:
myzip.write(inP)I'm writing this to automate some house cleaning and save space without deleting anything in case we ever need to retrieve a folder. It's my first time working with zipfile so I'm sure I'm missing something. My thought was it works similar to open(file, 'w') as f, f.write("something") where I'm creating a new file with 'w' and then adding to it with 'a'. Please tell what I'm missing so I can add the folders to the respective zip files or if I'm going at this the wrong way.
