Python ZIP file with Example

Posted in /  

Python ZIP file with Example

Vinay Khatri
Last updated on August 24, 2022

    Python comes with many standard libraries, and here, in this Python tutorial, we will learn about a Python zip file in detail. This article explains how to compress (zip) and extract (or un-zip) files.

    What is a Zip File?

    The zip file is an archive file format that uses algorithms to compress files without losing the data. When files are compressed to a zip archive, the size of the file reduces, but the data remain the same. Zip provides an ideal way to compress or reduce the size of files and collect them in a single folder or directory.

    Why Use a Zip File?

    • Zip files reduce the size of files. It reduces the storage space occupied by one or many files without losing data.
    • You can bind together many files in a single zip file.
    • With reduced size, it is very easy to send zip files over networks.

    Creating a Zip File in Python Using the zipfile Module

    Python comes with a standard zipfile module, which can compress files into a zip file.

    Example

    Let’s write Python code that will create a zip file.

    Here we are in a folder named dev. Now, you can see that we have three files, namely demo.txt, sublime.png and zip-tutorial.py . The zip-tutorial.py file contains the Python script that will create a zip file by compressing demo.txt and sublime.png files.

    Python Program to Create a Zip File

    #zip-tutorial.py

    import zipfile
    
    print("Creating Zip File.../")
    
    with zipfile.ZipFile("file.zip", "w", compression=zipfile.ZIP_DEFLATED) as create_zip:
    
        create_zip.write("demo.txt")   #compress the demo.txt file into file.zip
        create_zip.write("sublime.png")  #compress the sublime.png file into file.zip
    
    print("Zip file by name file.zip has been created")

    Execute the Python Program

    The above code will create a zip file with the name file.zip in the same folder or directory where the python script, i.e., zip-tutorial.py , is located. Now when you open the same directory, you will see the zip file created there.

    Behind the Code

    Similar to the Python file handling method, to create a zip file, the zipfile module provides the ZipFile method. In the ZipFile(“file.zip”, “w”, compression=zipfile.ZIP_DEFLATED ) method, we specified three parameters file.zip , “w” , and compression=zipfile.ZIP_DEFLATED . This means we want to write compressed files into the file.zip file. If this file is not available, this statement will create a file.zip file. Else, it will write in the existing file.zip file. The create_zip.write(“demo.txt”) and create_zip.write(“sublime.png”) statements copy and compress the files into a file.zip file.

    Extracting a Zip File in Python Using the zipfile Module

    Now you know how to create a zip file. Next, let’s discuss how you can extract a zip file using the Python zipfile module. As we have used the write mode, “ w ”, to create a zip file, similarly, we can use the read mode, “ r ”, to extract or read files from a zip file.

    Example

    In the dev folder, we have a file by name file.zip . Let’s write a Python program to extract the file.zip file.

    Python Program to Unzip (Extract) a Zip File

    #zip-tutorial.py

    import zipfile
    print("Extracting file.zip File.../")
    
    with zipfile.ZipFile("file.zip", "r") as extract_zip:
    
        #extract all files and save them in folder Extracted files
        extract_zip.extractall("Extracted Files")
    
    print("Zip file by name file.zip has been created")

    Execute the Program

    After executing the file, you will find the Extracted File folder in the development folder where your file.zip is located.

    Behind the Code

    Similar to the zip file creating technique, we used the zip file handling technique to extract the zip files. Using the statement zipfile.ZipFile("file.zip" , "r") we specified that we want to read the file.zip file, and with the extractall("Extracted Files") statement, we extracted the file.zip files into Extracted Files folder. The extractall() method extracts all the files present in the zip file. To extract specific files from the zip file, we can use the extract method. For instance, if we only want to extract the demo.txt file from the file.zip, we could have used the following code:

    extract_zip.extracta("demo.txt")

    Conclusion

    In this Python tutorial, we learned how to create and extract zip files using Python. Python provides a standard library, zipfile , to create and extract zip files. The zipfile module is very useful when you want to create an automated script. In the zipfile module, the ZipFile() method is used to open the zip file for reading and writing. While creating a zip file, we need to specify the compression=zipfile.ZIP_DEFLATED parameter to compress the files.

    Leave a Comment on this Post

    0 Comments