So I got this fantastic script from: Script for Making Individual Zip file for Each Shapefile? but I required some extra files to be added to each of the individual zips, e.g. 2 pdfs: one with metadata and another for terms and conditions.
import arcgisscripting, os, glob, zipfile, shutil
from os import path as p
# Create the Geoprocessor object
gp = arcgisscripting.create()
# arcpy.overwriteOutput = True
gp.overwriteoutput=1
def ZipShapes(path, out_path):
gp.workspace = path
shapes = gp.ListFeatureClasses("*")
# iterate through list of shapefile
for shape in iter(shapes.next, None):
name = p.splitext(shape)[0]
print name
zip_path = p.join(out_path, name + '.zip')
zip = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED)
os.chdir(path)
for files in glob.glob('%s.*' %name):
zip.write(p.join(path,files), files)
print 'All files written to %s' %zip_path
# copy pdf files to zip folder
for f in pdfList:
shutil.copyfile(os.path.join(os.path.dirname(path),f), os.path.join(path,f))
zip.close()
if __name__ == '__main__':
path = r'S:\Species\MARINEFISH'
outpath = r'S:\Species\MARINEFISH\ZIPS'
pdfList =["Terms & Conditions of Use.pdf", "METADATA.pdf"]
ZipShapes(path, outpath)
I keep getting the error:
Traceback (most recent call last):
File "S:\scripts\Python\Zipping_Shapefiles", line 34, in <module>
ZipShapes(path, outpath)
File "S:\scripts\Python\Zipping_Shapefiles", line 25, in ZipShapes
shutil.copyfile(os.path.join(os.path.dirname(path),f), os.path.join(path,f))
File "C:\Python27\ArcGIS10.3\lib\shutil.py", line 82, in copyfile
with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: 'S:\\Species\\METADATA.pdf'
Any help would be greatly appreciated!