可以使用第三方库 'tqdm' 来实现压缩包解压时的进度条显示。

首先需要安装 'tqdm' 库:

pip install tqdm

然后在代码中导入 'tqdm' 库,并使用 'tqdm.tqdm()' 函数来包装解压缩函数,从而实现进度条显示。

示例代码:

import os
import sys
import tqdm
import py7zr

# 解压缩函数,使用tqdm包装
def extract_archive(archive_path, extract_dir):
    with py7zr.SevenZipFile(archive_path, 'r') as archive:
        file_list = archive.getnames()
        total_size = sum(archive.getsize(name) for name in file_list)
        with tqdm.tqdm(total=total_size, unit='B', unit_scale=True, desc=os.path.basename(archive_path)) as pbar:
            archive.extractall(path=extract_dir, members=archive.itermembers())
            for member in archive.itermembers():
                pbar.update(member.header.size)

# 调用解压缩函数
archive_path = 'python.7z'
extract_dir = 'extracted'
extract_archive(archive_path, extract_dir)

在上述代码中,使用 'tqdm.tqdm()' 函数包装了解压缩函数 'extract_archive()',并设置了 'total' 参数为压缩包中所有文件的大小总和,'unit' 和 'unit_scale' 参数为 'B' 和 'True',表示进度条以字节为单位显示,并自动调整为合适的单位(如 MB、GB 等)。使用 'desc' 参数设置进度条的描述信息为压缩包的文件名。在解压缩过程中,使用 'archive.itermembers()' 方法遍历压缩包中的所有文件,并调用 'pbar.update()' 方法更新进度条。

Python 解压 .7z 压缩包并显示实时进度条

原文地址: https://www.cveoy.top/t/topic/oifa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录