Python - Zip Directories Recursively
Python - Zip Directories Recursively
Submitted by corey@goldb.org (Corey Goldberg) on Fri, 10/07/2009 - 15:55.This helped me out today with some backup scripts. Posting here so I can remember it. Idea and snippet adapted from: http://mail.python.org/pipermail/python-list/2007-February/596539.html
#!/usr/bin/env python
import os
import zipfile
def main():
zipper('c:/test', 'c:/temp/test.zip')
def zipper(dir, zip_file):
zip = zipfile.ZipFile(zip_file, 'w', compression=zipfile.ZIP_DEFLATED)
root_len = len(os.path.abspath(dir))
for root, dirs, files in os.walk(dir):
archive_root = os.path.abspath(root)[root_len:]
for f in files:
fullpath = os.path.join(root, f)
archive_name = os.path.join(archive_root, f)
print f
zip.write(fullpath, archive_name, zipfile.ZIP_DEFLATED)
zip.close()
return zip_file
if __name__ == '__main__':
main()
* code updated. there was a bug in the original I posted (cmg - 07/13/09)
