监控ZIP文件提取Python

Zac*_*own 7 python zip progress monitor extraction

我需要解压缩.ZIP存档.我已经知道如何解压缩它,但它是一个巨大的文件,需要一些时间来解压缩.如何打印提取的完成百分比?我想要这样的东西:

Extracting File
1% Complete
2% Complete
etc, etc
Run Code Online (Sandbox Code Playgroud)

mou*_*uad 14

这里有一个你可以开始的例子,它没有优化:

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)
Run Code Online (Sandbox Code Playgroud)

打印时要做得更漂亮:

 print "%s %%\r" % (extracted_size * 100/uncompress_size),
Run Code Online (Sandbox Code Playgroud)


Roa*_*ner 8

您可以使用以下命令监视每个文件的提取进度tqdm()

from zipfile import ZipFile
from tqdm import tqdm

# Open your .zip file
with ZipFile(file=path) as zip_file:

    # Loop over each file
    for file in tqdm(iterable=zip_file.namelist(), total=len(zip_file.namelist())):

        # Extract each file to another directory
        # If you want to extract to current working directory, don't specify path
        zip_file.extract(member=file, path=directory)
Run Code Online (Sandbox Code Playgroud)