Monitor ZIP File Extraction Python

extract, monitor, progress, python, zip

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),

Problem

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 ```

Original source