Zipping a File Geodatabase using Python
Ever since the ever-popular post, Zipping a shapefile using python, came out, people have been asking (one person, yesterday) for a sample of how to zip a file geodatabase using python.
The key trick, as shown in line 17, is appending the basename of the file geodatabase (‘nfg.gdb/’ in my example) in front of each file as you write it to the zipfile.
UPDATE: WordPress messes with the spacing when I post code, making it difficult to post code that can just be copied & pasted and have work. So I have posted a the code HERE for downloading.
import os
import zipfile
import glob
infile = "c:/temp/nfg.gdb"
outfile = "c:/temp/nfg.zip"
def zipFileGeodatabase(inFileGeodatabase, newZipFN):
if not (os.path.exists(inFileGeodatabase)):
return False
if (os.path.exists(newZipFN)):
os.remove(newZipFN)
zipobj = zipfile.ZipFile(newZipFN,'w')
for infile in glob.glob(inFileGeodatabase+"/*"):
zipobj.write(infile, os.path.basename(inFileGeodatabase)+"/"+os.path.basename(infile), zipfile.ZIP_DEFLATED)
print ("Zipping: "+infile)
zipobj.close()
return True
zipFileGeodatabase(infile,outfile)