Python 解压 .7z 文件并实时显示进度条
以下是使用 Python 实现解压缩并实时显示进度条的示例代码:
import os
import sys
import time
import zipfile
def extract_progress(zip_file, extract_path):
'解压缩文件并实时显示进度条'
'param zip_file: 待解压缩的文件路径'
'param extract_path: 解压缩后的存储路径'
with zipfile.ZipFile(zip_file) as zf:
file_list = zf.namelist()
total_size = sum((file_info.file_size for file_info in zf.infolist()))
extracted_size = 0
for file_info in zf.infolist():
extracted_size += file_info.file_size
progress = extracted_size / total_size * 100
sys.stdout.write(f'
Extracting {file_info.filename}...{progress:.2f}%')
zf.extract(file_info, extract_path)
sys.stdout.write('
')
if __name__ == '__main__':
zip_file = 'python.7z'
extract_path = 'C:\'
extract_progress(zip_file, extract_path)
代码中使用了 Python 标准库中的 zipfile 模块来解压缩文件,并通过遍历 zipfile.ZipFile 对象的 infolist() 来计算总文件大小,进而计算解压缩进度。在显示进度条时,使用了 sys.stdout.write() 函数并设置了 \r(回车符),使得每次输出的信息覆盖前一次输出的信息,从而实现了实时显示进度条的效果。
原文地址: https://www.cveoy.top/t/topic/oigI 著作权归作者所有。请勿转载和采集!