Search code examples
pythonzipmonitorprogressextract

Monitor ZIP File Extraction Python


I need to unzip a .ZIP archive. I already know how to unzip it, but it is a huge file and takes some time to extract. How would I print the percentage complete for the extraction? I would like something like this:

Extracting File
1% Complete
2% Complete
etc, etc

Solution

  • here an example that you can start with, it's not optimized:

    import zipfile
    
    zf = zipfile.ZipFile('test.zip')
    
    uncompress_size = sum((file.file_size for file in zf.infolist()))
    
    extracted_size = 0
    
    for file in zf.infolist():
        extracted_size += file.file_size
        print "%s %%" % (extracted_size * 100/uncompress_size)
        zf.extract(file)
    

    to make it more beautiful do this when printing:

     print "%s %%\r" % (extracted_size * 100/uncompress_size),