How can I create a zip archive of a directory structure in Python?
The easiest way is to use
shutil.make_archive. It supports both zip and tar formats.
import shutil shutil.make_archive(output_filename, "zip", dir_name)
If you need to do something more complicated than zipping the whole directory (such as skipping certain files), then you"ll need to dig into the
zipfile module as others have suggested.
As others have pointed out, you should use zipfile. The documentation tells you what functions are available, but doesn"t really explain how you can use them to zip an entire directory. I think it"s easiest to explain with some example code:
import os import zipfile def zipdir(path, ziph): # ziph is zipfile handle for root, dirs, files in os.walk(path): for file in files: ziph.write(os.path.join(root, file), os.path.relpath(os.path.join(root, file), os.path.join(path, ".."))) zipf = zipfile.ZipFile("Python.zip", "w", zipfile.ZIP_DEFLATED) zipdir("tmp/", zipf) zipf.close()
Data and storage models are the basis for big data ecosystem stacks. While storage model captures the physical aspects and features for data storage, data model captures the logical representation and...
Learning Correct Cryptography by Example. The interconnected world of the current era has drastically changed everything, including banking, entertainment, and even statecraft. Despite difference...
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent Systems PDF, 2nd Edition. This book assumes you know next to nothing about m...
This book serves as a practical guide on how to utilize big data to store, process, and analyze structured data, focusing on three of the most popular Apache projects in the Hadoop ecosystem: Apache S...