Python 解压 .7z 压缩包并显示实时进度条
可以使用第三方库 '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()' 方法更新进度条。
原文地址: https://www.cveoy.top/t/topic/oifa 著作权归作者所有。请勿转载和采集!