code_junkie

How do I zip the contents of a folder using python (version 2.5)?

Nov 12th, 2011
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. #!/usr/bin/env python
  2. from __future__ import with_statement
  3. from contextlib import closing
  4. from zipfile import ZipFile, ZIP_DEFLATED
  5. import os
  6.  
  7. def zipdir(basedir, archivename):
  8. assert os.path.isdir(basedir)
  9. with closing(ZipFile(archivename, "w", ZIP_DEFLATED)) as z:
  10. for root, dirs, files in os.walk(basedir):
  11. #NOTE: ignore empty directories
  12. for fn in files:
  13. absfn = os.path.join(root, fn)
  14. zfn = absfn[len(basedir)+len(os.sep):] #XXX: relative path
  15. z.write(absfn, zfn)
  16.  
  17. if __name__ == '__main__':
  18. import sys
  19. basedir = sys.argv[1]
  20. archivename = sys.argv[2]
  21. zipdir(basedir, archivename)
  22.  
  23. C:zipdir> python -mzipdir c:tmptest test.zip
  24.  
  25. import zipfile
  26.  
  27. compressedFile = zipfile.ZipFile(FILENAME,"a", zipfile.ZIP_DEFLATED)
  28. compressedFile.write(existing_file_name, archived_name)
  29.  
  30. def zipfolder(path, relname, archive):
  31. paths = os.listdir(path)
  32. for p in paths:
  33. p1 = os.path.join(path, p)
  34. p2 = os.path.join(relname, p)
  35. if os.path.isdir(p1):
  36. zipfolder(p1, p2, archive)
  37. else:
  38. archive.write(p1, p2)
  39.  
  40. def create_zip(path, relname, archname):
  41. archive = zipfile.ZipFile(archname, "w", zipfile.ZIP_DEFLATED)
  42. if os.path.isdir(path):
  43. zipfolder(path, relname, archive)
  44. else:
  45. archive.write(path, relname)
  46. archive.close()
Add Comment
Please, Sign In to add comment