【Python】解压文件/ZIP等 并实时计算解压进度

摘要:
解包路径:“”“解压缩ZIP文件@paramzip_file_Path:aaa a.ZIP)@paramunpack_Path:all_size+=i.file_size#1.1字节B转换为兆字节MB(string)all_size_str=str(int(all_size/1024/1024))+'MB''2当前解压缩文件的总大小(单位:
import zipfile
def read_zip(zip_file_path: str, unpack_path: str, ws_msg: WebSocketMsg):
    """
    解压ZIP文件
    @param zip_file_path: ZIP文件路径(ex. E:\aaa\a.zip)
    @param unpack_path: 解压文件输出路径(ex. E:\aaa)
    @param ws_msg: 用来放实时进度的类(可干掉)
    """

    file_list = zipfile.ZipFile(zip_file_path)
    info = file_list.infolist()

    ''' 1 计算解压后的文件总大小(单位:字节B) '''
    all_size = 0
    for i in info:
        all_size += i.file_size
    # 1.1 字节B转换为兆字节MB (字符串)
    all_size_str = str(int(all_size / 1024 / 1024)) + 'MB'

    ''' 2 当前已解压的文件总大小(单位:字节B) '''
    now_size = 0
    for i in info:
        file_list.extract(i, unpack_path)
        now_size += i.file_size
        # 2.1 字节B转换为兆字节MB (字符串)
        now_size_str = str(int(now_size / 1024 / 1024)) + 'MB'
        ws_msg.msg.append(f'解压进度:{int(now_size / all_size * 100)}% ({now_size_str}/{all_size_str})')
        # print(f'解压进度:{int(now_size / all_size * 100)}% ({now_size_str}/{all_size_str})')
    file_list.close()

免责声明:文章转载自《【Python】解压文件/ZIP等 并实时计算解压进度》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转载]fullPage.js中文api 配置参数~【js基本功能模块】“回到顶部”代码优化下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

打造“黑客“手机--Kali Nethunter

  从三月份开始,继续更新技术文章。一个月没有更新技术文章了,这一个月有一部分时间是在休息,另一部分时间是在学习汇编和操作系统,沉淀底层和逆向方面的技术。(我的新书《Python爬虫开发与项目实战》出版了,大家可以看一下样章)   今年年初,为了玩一下 kali NetHunter,入手了一部1加3T手机。今天花了半天时间,将NetHunter刷入到手机中...

流量取证-流量中提取文件

以前整理的一些东西,拿出来做备忘 PCAP 报文就是抓取实际在网络中传输的图片,视频等数据,然后以PCAP 格式存储形成的文件。工作中对离线的数据包进行回溯分析,有时会遇到将 PCAP 中的码流还原成相应的图片、视频、邮件等原有格式的需求。 从流量中取证文件大部分情况下是为了提取流量中的可执行程序。 1、 tcpxtract 安装: apt-get ins...

java spring boot 导出/下载文本文件操作(包含写文本文件)

内容简介 本文主要内容为使用java把内容写入文本文件,并实现下载/导出的功能。 实现步骤 1. controller层 @ResponseBody @RequestMapping(value = "/exportLand2ndClassIndex", method = RequestMethod.GET) public Res...

vue 2.0 及 vue 3.0 rem配置

vue 2.0 配置 rem   首先先安装postcss-px2rem    (百度可以) https://www.jianshu.com/p/e6476bbc2131     npm install postcss-px2rem 找到文件 build / vue-loader.config.js  添加 const px2rem = require('...

前端 WebUploader 分块上传

这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。 public class FileInf {      public File...

.NET Core 如何部署到Docker(菜鸟篇)

我的.net core 版本为3.1,centos 版本为7.0 在Centos下安装Docker 这里参考此篇文章:Docker从入门到实践-在centos下安装Docker如果下载慢就更换yum的软件源:配置文件路径为: /etc/yum.repos.d/docker-ce.repo安装完成后进行测试:docker run hello-world输出如...