Python zipfile module is used to read and write the zip files. Here we will see how to create a zip file in python using zipfile
module.
How to create Zip file in python:
Usecase: Choose a directory and make the zip file out of it.
import zipfile
import os
def prepare_zip(dir_path):
new_file = dir_path + '.zip'
# creating zip file with write mode
zip = zipfile.ZipFile(new_file, 'w', zipfile.ZIP_DEFLATED)
# Walk through the files in a directory
for dir_path, dir_names, files in os.walk(dir_path):
f_path = dir_path.replace(dir_path, '')
f_path = f_path and f_path + os.sep
# Writing each file into the zip
for file in files:
zip.write(os.path.join(dir_path, file), f_path + file)
zip.close()
print("File Created successfully..")
return new_file
if __name__ == '__main__':
prepare_zip('C:\\Users\\Lenovo\\Documents\\Data')
ZipFile()
creates a new zip file with write permissions by taking the path parameter. Walkthrough each file and folders into the given directory and write them into the zip file.
Output:
File Created successfully..
You can see the created zip in the given directory.
How to unzip/extract Zip file in python:
The same data.zip
file I am going to extract here. zipfile.extractall()
function extracts all members from the archive to the current working directory.
Unzip the file in current working directory:
def extract_zip(dir_path):
with zipfile.ZipFile(dir_path+'data.zip', 'r') as zip_inst:
zip_inst.extractall()
The above code extracts the content of the data.zip file in current working directory.
Unzip the file in a different location:
If you wish to extract the content in a different location, you have to supply that path to the extractall(path)
function.
def extract_zip(dir_path):
with zipfile.ZipFile(dir_path+'data.zip', 'r') as zip_inst:
zip_inst.extractall(dir_path)
Then you can see the extracted content in the given path.
References:
Happy Learning 🙂