In this article we will discuss different ways to unzip or extract single, multiple or all files from zip archive to current or different directory.

In Python’s zipfile module, ZipFile class provides a member function to extract all the contents from a ZIP archive,

It accepts following arguments :

  • path : location where zip file need to be extracted, if not provided it will extract the contents in current directory.
  • members : list of files to be extracted. It will extract all the files in zip if this argument is not provided.
  • pwd : If zip file is encrypted then pass password in this argument default is None.

Module required :

Let’s use this to extract all the contents from zip files.

Extract all files from a zip file to current directory

Suppose we have a zip file ‘sample.zip’. in our current directory, let’s see how to extract all files from it.
To unzip it first create a ZipFile object by opening the zip file in read mode and then call extractall() on that object i.e.

It will extract all the files in zip at current Directory.  If files with same name are already present at extraction location then it will overwrite those files.

Extract all files from a zip file to different directory

To extract all the files from zip file to a different directory, we can pass the destination location as argument in extractall(). Path can be relative or absolute.

It will extract all the files in ‘sample.zip’ in  temp folder.

Extract few files from a large zip file based on condition

Suppose we have a very large zip file and we need a few files from thousand of files in the archive. Unzipping all files from large zip can take minutes. But if are interested in few of the archived files only, then instead of unzipping the whole file we can extract a single file too from the zip file.

In Python’s zipfile module, ZipFile class provides a member function to extract a single from a ZIP File,

It accepts following arguments :

  • member : Full name of file to be extracted. It should one from the list of archived files names returned by ZipFile.namelist()
  • path : location where zip file need to be extracted, if not provided it will extract the file in current directory.
  • pwd : If zip file is encrypted then pass password in this argument default is None.

Let’s use this to extract only csv files from a zip file i.e.

It will extract only csv files from given zip archive.

Complete example is as follows,

 

 

Click Here to Subscribe for more Articles / Tutorials like this.