当前位置: 首页 > news >正文

python unzip file

要在 Python 中解压文件并显示进度,我们需要在解压过程中跟踪文件的提取进度。由于 zipfile 模块本身不直接支持进度显示,我们可以通过手动计算并使用 tqdm 库来显示进度条。

安装 tqdm

首先,确保你已经安装了 tqdm 库,用于显示进度条:

 

bash

pip install tqdm

示例代码:解压 .zip 文件并显示进度

 

python

import zipfile
import os
from tqdm import tqdmdef unzip_with_progress(zip_file_path, extract_to_folder):# 打开 zip 文件with zipfile.ZipFile(zip_file_path, 'r') as zip_ref:# 获取压缩包中的所有文件列表all_files = zip_ref.namelist()# 如果目标文件夹不存在,创建它os.makedirs(extract_to_folder, exist_ok=True)# 使用 tqdm 显示进度条,循环解压文件with tqdm(total=len(all_files), desc="解压中", unit="file") as pbar:for file in all_files:# 解压每个文件到目标文件夹zip_ref.extract(file, path=extract_to_folder)# 更新进度条pbar.update(1)print(f"文件已解压到 {extract_to_folder}")# 解压文件并显示进度
zip_file_path = 'your_file.zip'  # 替换成你的 zip 文件路径
extract_to_folder = 'extracted_folder'  # 替换成解压目标文件夹
unzip_with_progress(zip_file_path, extract_to_folder)

python

代码说明:

  1. 获取文件列表:使用 zip_ref.namelist() 获取 .zip 文件中所有文件的名称。这样可以通过 tqdm 显示每个文件的解压进度。
  2. tqdm 进度条tqdm 用于显示进度条,它会根据文件的数量(len(all_files))来显示进度。desc="解压中" 是进度条前的描述信息,unit="file" 表示单位是文件。
  3. 文件解压:通过 zip_ref.extract() 来解压每个文件到指定的目标文件夹。
  4. 进度更新:每解压一个文件,调用 pbar.update(1) 来更新进度条。

示例输出:

当你运行这个脚本时,命令行会显示类似下面的进度条:

解压中: 100%|██████████| 10/10 [00:01<00:00, 9.45file/s]
文件已解压到 extracted_folder

提示:

  • 这个方法对于压缩包中的文件较多时非常有效。
  • 如果文件非常大,进度条更新的速度可能会受到磁盘 I/O 或 CPU 限制的影响。

如果你有更多的要求,或者需要进一步的帮助,随时告诉我!

相关文章:

python unzip file

要在 Python 中解压文件并显示进度&#xff0c;我们需要在解压过程中跟踪文件的提取进度。由于 zipfile 模块本身不直接支持进度显示&#xff0c;我们可以通过手动计算并使用 tqdm 库来显示进度条。 安装 tqdm 首先&#xff0c;确保你已经安装了 tqdm 库&#xff0c;用于显示…...

MySQL-增删改查

一、Create(创建) &#x1f4d6; 语法&#xff1a; INSERT INTO table_name(value_list); 当我们使用表的时候&#xff0c;就可以使用这个语法来向表中插入元素~ 我们这边创建一个用于示范的表(Student)~ create table student( id int, name varchar(20), chinese int, math…...

LeetCode 热题100 15. 三数之和

LeetCode 热题100 | 15. 三数之和 大家好&#xff0c;今天我们来解决一道经典的算法题——三数之和。这道题在 LeetCode 上被标记为中等难度&#xff0c;要求我们从一个整数数组中找到所有不重复的三元组&#xff0c;使得三元组的和为 0。下面我将详细讲解解题思路&#xff0c…...

网络空间安全(1)web应用程序的发展历程

前言 Web应用程序的发展历程是一部技术创新与社会变革交织的长卷&#xff0c;从简单的文档共享系统到如今复杂、交互式、数据驱动的平台&#xff0c;经历了多个重要阶段。 一、起源与初期发展&#xff08;1989-1995年&#xff09; Web的诞生&#xff1a; 1989年&#xff0c;欧洲…...

ABAQUS功能梯度材料FGM模型

功能梯度材料&#xff08;FGM&#xff09;作为一种新型复合材料&#xff0c;通过材料内部成分或微观结构的梯度变化&#xff0c;优化特定性能适应复杂环境&#xff0c;被广泛应用于高温防护、结构优化、生物医学、光电设备等领域。本案例介绍在ABAQUS内建立功能梯度材料模型。 …...

自适应增强技术

1. 传统图像处理中的自适应增强&#xff08;如CLAHE&#xff09; 难度&#xff1a;⭐容易 实现方式&#xff1a;调用成熟的库&#xff08;如OpenCV&#xff09;函数即可完成。 示例代码&#xff08;CLAHE增强&#xff09;&#xff1a; <PYTHON> import cv2# 输入灰度或彩…...

虚拟项目:一个好用的工具平台

在当今数字化的时代&#xff0c;虚拟项目如雨后春笋般涌现&#xff0c;为人们提供了诸多便捷且充满机遇的选择。以下将为大家详细介绍几种颇具特色的虚拟项目&#xff0c;包括书签、资源站、题库、虚拟商城、专栏、证件照以及分站搭建等&#xff0c;一起来了解它们各自的独特之…...

MySQL 和 Elasticsearch 之间的数据同步

MySQL 和 Elasticsearch 之间的数据同步是常见的需求&#xff0c;通常用于将结构化数据从关系型数据库同步到 Elasticsearch 以实现高效的全文搜索、聚合分析和实时查询。以下是几种常用的同步方案及其实现方法&#xff1a; 1. 应用层双写&#xff08;双写模式&#xff09; 原…...

PS裁剪工具

裁剪&#xff1a; 多张图同一标准裁剪&#xff1a;裁剪–》前面的图像–》选择其他图像–》 确定 选区–》裁剪工具–》确定&#xff1a;选区制作矩形裁剪 裁剪–》拉直 裁剪–》内容识别&#xff1a;当裁剪大于图片大小&#xff0c;会自动填充空白区域 &#xff08;栅格化图层…...

[Web 安全] PHP 反序列化漏洞 —— PHP 序列化 反序列化

关注这个专栏的其他相关笔记&#xff1a;[Web 安全] 反序列化漏洞 - 学习笔记-CSDN博客 0x01&#xff1a;PHP 序列化 — Serialize 序列化就是将对象的状态信息转化为可以存储或传输的形式的过程&#xff0c;在 PHP 中&#xff0c;通常使用 serialize() 函数来完成序列化的操作…...

QT入门--QMainWindow

从上向下依次是菜单栏&#xff0c;工具栏&#xff0c;铆接部件&#xff08;浮动窗口&#xff09;&#xff0c;状态栏&#xff0c;中心部件 菜单栏 创建菜单栏 QMenuBar* mybar1 menuBar(); 将菜单栏放到窗口中 setMenuBar(mybar1); 创建菜单 QMenu *myfilemenu mybar1-…...

C++ | 高级教程 | 信号处理

&#x1f47b; 概念 信号 —— 操作系统传给进程的中断&#xff0c;会提早终止程序有些信号不能被程序捕获&#xff0c;有些则可以被捕获&#xff0c;并基于信号采取适当的动作 信号描述SIGABRT程序的异常终止&#xff0c;如调用 abortSIGFPE错误的算术运算&#xff0c;比如除…...

最新前端框架选型对比与建议(React/Vue/Svelte/Angular)

前端框架选型对比与建议&#xff08;React/Vue/Svelte/Angular&#xff09; 一、核心框架技术特性对比&#xff08;基于最新版本&#xff09; 维度React 19 25Vue 3.5 12Svelte 5 25Angular 19 5核心理念函数式编程、JSX语法、虚拟DOM渐进式框架、组合式API、模板语法编译时框…...

游戏引擎学习第123天

仓库:https://gitee.com/mrxiao_com/2d_game_3 黑板&#xff1a;线程同步/通信 目标是从零开始编写一个完整的游戏。我们不使用引擎&#xff0c;也不依赖任何库&#xff0c;完全自己编写游戏所需的所有代码。我们做这个节目不仅是为了教育目的&#xff0c;同时也是因为编程本…...

计算机网络:从底层原理到前沿应用,解锁数字世界的连接密码

计算机网络&#xff1a;从底层原理到前沿应用&#xff0c;解锁数字世界的连接密码 在信息如洪流般奔涌的时代&#xff0c;计算机网络宛如无形的脉络&#xff0c;贯穿于我们生活的每一个角落。它不仅是数据传输的通道&#xff0c;更是连接全球、驱动创新的核心力量。从日常的网络…...

grafana K6压测

文章目录 install and runscript.jsoptions最佳实践 report 解析 https://grafana.com/docs/k6/latest/get-started install and run install # mac brew install k6当前目录下生成压测脚本 # create file script.js k6 new [filename] # create file ‘script.js’ in …...

Vue的组合式API和选项式API有什么区别

Vue3的组合式API&#xff08;Composition API&#xff09;和选项式API&#xff08;Options API&#xff09;是两种不同的组件编写方式&#xff0c;主要区别如下&#xff1a; 1. 代码组织方式 选项式API&#xff1a; 按照选项&#xff08;如data、methods、computed等&#xff0…...

ubuntu 安全策略(等保)

windows 三个帐号屏保设置组策略,密码超时次数/审计记录&#xff1b; linux 应具有登录失败处理功能&#xff0c;应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施。 1、在系统中新建测试用户&#xff0c;使用此用户登录时多次输入错误密码&…...

c/c++蓝桥杯经典编程题100道(22)最短路径问题

最短路径问题 ->返回c/c蓝桥杯经典编程题100道-目录 目录 最短路径问题 一、题型解释 二、例题问题描述 三、C语言实现 解法1&#xff1a;Dijkstra算法&#xff08;正权图&#xff0c;难度★★&#xff09; 解法2&#xff1a;Bellman-Ford算法&#xff08;含负权边&a…...

AI工具集合

设计相关 1. mastrtgo&#xff08;暂时免费&#xff09; &#xff1a;可以根据自然语言生成UI设计稿和前端代码 MasterGo 莫高设计 - AI 时代的数字界面生产平台 2. reddy.ai&#xff08;暂时免费&#xff09;: 国外类似mastrtgo的平台 Readdy 3. midjourney &#xff08;…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践&#xff0c;很多人以为AI已经强大到不需要程序员了&#xff0c;其实不是&#xff0c;AI更加需要程序员&#xff0c;普通人…...