Python - How To Create a Zip Archive of a Directory

ID : 178

viewed : 188

Tags : PythonPython Dictionary

vote vote

93

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.

  • Related HOW TO?