Zipfile模块

zipfile 模块是 Python 中用于处理 ZIP 文件的标准库模块。它提供了创建、读取和写入 ZIP 文件的功能。

zipfile 模块在写入文件时,如果要将文件写入子目录,需要在写入文件前先创建好相应的目录结构。

创建压缩包

在使用 zipfile.ZipFile 写入模式 (mode="w") 时,如果指定的目录不存在,会抛出 FileNotFoundError。因此,在执行上述代码之前,你需要确保 "zip_dir" 目录已经存在。如果目录不存在,可以使用 os.makedirs 来递归创建目录。

import zipfile
import os # 创建目录结构
zip_dir = "zip_dir"
os.makedirs(zip_dir, exist_ok=True) # 创建 ZIP 文件
with zipfile.ZipFile("zip_dir/abc.zip", mode="w") as zip_file: # 路径/文件名,模式写
zip_file.write("wf.txt")
zip_file.write("x2.txt") # 不用with的写法需要手动.close()
f = zipfile.ZipFile("zip_dir/abc.zip", mode="w") # 路径/文件名,模式写
f.write("wf.txt")
f.write("x2.txt")
f.close() # 创建后需要关闭

如何进行解压缩extractallextract

extractallextract方法会自动创建目录,所以你不需要提前建好 "zip_dir/abc" 目录。如果该目录不存在,extract 方法会自动创建它,然后将 ZIP 文件中的内容解压到该目录中。

直接全部解压缩extractall

with zipfile.ZipFile("zip_dir/abc.zip", mode="r") as zip_file:    # 路径/文件名,模式读
zip_file.extractall("zip_dir/abc") # /abc也是目录 # 不用with的写法不推荐,需要手动.close()
f = zipfile.ZipFile("zip_dir/abc.zip", mode="r") # 路径/文件名,模式读
f.extractall("zip_dir/abc") # /abc也是目录
f.close()

一个一个的解压缩extract

with zipfile.ZipFile("zip_dir/abc.zip", mode="r") as zip_file:    # 路径/文件名,模式读
for name in zip_file.namelist():
zip_file.extract(name, "zip_dir/abc") # /abc也是目录 # 不用with的写法不推荐,需要手动.close()
f = zipfile.ZipFile("zip_dir/abc.zip", mode="r") # 路径/文件名,模式读
# 首先我们要用到f.namelist()函数,拿到文件名,然后用for循环去拿去名字执行解压
for name in f.namelist():
f.extract(name, "zip_dir/abc") # /abc也是目录
f.close()

Python——第五章:Zipfile模块的更多相关文章

  1. Python第五章__模块介绍,常用内置模块

    Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群  群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...

  2. 简学Python第五章__模块介绍,常用内置模块

    Python第五章__模块介绍,常用内置模块 欢迎加入Linux_Python学习群  群号:478616847 目录: 模块与导入介绍 包的介绍 time &datetime模块 rando ...

  3. python第五周:模块、标准库

    模块相关知识: 定义:用来从逻辑上组织python代码(变量.函数.类.逻辑:实现一个功能)本质就是以.py结尾的python文件(文件名:test.py,对应的模块名:test) 附注:包:是用来从 ...

  4. python学习笔记之zipfile模块

    为什么学习: 在做自动化测试平台的apk上传功能部分时候,涉及到apk上传后提取apk的icon图标,通过aapt解析apk,获取对应icon在apk中的地址,通过python的zipfile模块来解 ...

  5. Python第五章实验报告

    一.实验项目名称:<零基础学Python>第五章实战.实例以及两道作业题 二.实验目的和要求:了解和掌握操作字符串的方法和正则表达式的应用 三.实验环境:IDLE(Python 3.9 6 ...

  6. 那些年被我坑过的Python——道阻且长(第五章实用模块讲解)

    random模块 我的随机验证吗程序: 首先保证了字母和数字出现的概率是50% VS 50%,其次是可以订制输出多少位 def Captcha(size): Captcha_list = [] for ...

  7. 流畅的python第五章一等函数学习记录

    在python中,函数是一等对象,一等对象是满足以下条件的程序实体 1在运行时创建 2能复制给变量或数据结构的元素 3能作为参数传给函数 4能作为函数的返回结果 高阶函数(接受函数作为参数或者把函数作 ...

  8. Python第五章-内置数据结构05-集合

    Python内置数据结构 五.集合(set) python 还提供了另外一种数据类型:set. set用于包含一组无序的不重复对象.所以set中的元素有点像dict的key.这是set与 list的最 ...

  9. Python第五章-内置数据结构01-字符串

    Python 内置的数据结构 ​ 到目前为止,我们如果想保存一些数据,只能通过变量.但是如果遇到较多的数据要保存,这个时候时候用变量就变的不太现实. ​ 我们需要能够保存大量数据的类似变量的东东,这种 ...

  10. Python第五章-内置数据结构04-字典

    Python 内置的数据结构 四.字典(dict) 字典也是 python 提供给我们的又一个非常重要且有用的数据结构. 字典在别的语言中有时叫关联数组.关联内存.Map等. 字典中存储的是一系列的k ...

随机推荐

  1. 20个最佳实践提升Terraform工作流程|Part 1

    Terraform 是管理基础设施及代码(IaC)最常用的工具之一,它能使我们安全且可预测地对基础设施应用更改.刚开始上手 Terraform 可能会感觉有些不容易,但很快就能对该工具有基本的了解,随 ...

  2. 深入解析HTTP请求:了解请求特征与报文格式的关键秘密

    引言 在上一章节中,我们详细探讨了超文本传输协议(HTTP)的基本概念,并且延伸讨论了HTTP请求响应的基本流程.在这个过程中,浏览器首先通过DNS解析来确定要访问的服务器的IP地址,然后与服务器建立 ...

  3. 「codeforces - 1674F」Madoka and Laziness

    link. 如果做过 codeforces - 1144G 那这题最多 *2200. 序列中的最大值必然为其中一个拐点,不妨设 \(a_p = a_\max\),先讨论另一个拐点 \(i\) 在 \( ...

  4. 使用Debian 11基础镜像制作java8镜像

    下面是dockerfile内容: FROM debian:bullseye # 切换apt源为清华源,并安装vim ping telnet命令 RUN apt-get update && ...

  5. pandas处理大数据题目的操作

    1.用法:DataFrame.drop(labels=None, axis=0, index=None, columns=None, inplace=False) 2.参数说明: labels:要删除 ...

  6. MySQL——MySQL面试题

    文章目录 数据库基础知识 为什么要使用数据库 什么是SQL? 什么是MySQL? 数据库三大范式是什么 mysql有关权限的表都有哪几个 MySQL的binlog有有几种录入格式?分别有什么区别? 数 ...

  7. 推荐免费的svn空间(SVN代码托管)

    推荐免费的svn空间(SVN代码托管) 最近研究了国内和国外的免费svn空间,SVN代码托管,SVN在线,代码托管中心,有所心得. 1.http://www.svn999.com/ [推荐]国内的,免 ...

  8. Spring框架中 依赖注入和控制反转,最简单、最通俗的解释! 再加上一个AOP

    首先依赖注入 == 控制反转,只不过控制反转这个词汇,让人产生了错误的理解,才使用新的词汇:依赖注入来替换到这个词汇. "依赖注入"是指一个对象应用另外一个对象来提供一个特殊的能力 ...

  9. 洛谷P1144

    最短路计数 题目描述 给出一个 \(N\) 个顶点 \(M\) 条边的无向无权图,顶点编号为 \(1\sim N\).问从顶点 \(1\) 开始,到其他每个点的最短路有几条. 输入格式 第一行包含 \ ...

  10. 给STM32装点中国风——华为LiteOS移植

    我都二手程序员好几个礼拜了!想给我的STM32来点"中国风",装个华为LiteOS操作系统. 在此之前,我也试过STM32CubeMX自带的FreeRTOS操作系统,不知是何缘故, ...