How to Create a Zip Archive of a Directory Using Python

Vaibhav Vaibhav Feb 02, 2024
How to Create a Zip Archive of a Directory Using Python

The zip file is an archive file format containing one or more compressed files. It supports lossless data compression and is the most commonly used archive format worldwide. This article will help us learn the ways to convert a directory to a zip file using the Python programming language.

Using the shutil Library to Create a Zip Archive of a Directory

The shutil library is a part of the standard Python. It offers several high-level functions to perform over files or groups of files, such as copying, compression, decompression, and removal. It has a function or method by the name of make_archive() that can convert any directory or folder into a zip archive file. The following are the most used arguments of this function.

  • base_name: Name of the file to be created along with the path and without any format extension.
  • format: It is the name of the format of the archive. The available options are zip (require zlib module), tar, gztar (require zlib module), bztar (require bz2 module), and xztar (require lzma module).
  • root_dir: It is the directory that will be the archive’s root directory, which means all the paths in the archive will be relative to it. The default value is the current directory.
  • base_dir: It is the directory from where archiving starts. Its value should be relative to the root_dir. The default value is the current directory.

Now that we are done with some brief theory about the package and the required function, let us learn how we can use this function to create a zip archive from a directory.

import os
import shutil

filename = "compressed"
format = "zip"
directory = os.getcwd()
shutil.make_archive(filename, format, directory)

The above code will compress the current working directory into a zip file and name the file to compressed.zip. Note that we did not mention the extension (.zip) in the base_name.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Related Article - Python Dictionary