python解压后缀名为python7z的压缩包控制台实时显示进度
可以使用第三方库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()方法更新进度条
原文地址: http://www.cveoy.top/t/topic/fuWl 著作权归作者所有。请勿转载和采集!