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. 在线问诊 Python、FastAPI、Neo4j — 创建 饮食节点

    目录 饮食数据 创建节点 根据疾病.症状,判断出哪些饮食不能吃,哪些建议多吃 饮食数据 foods_data.csv 建议值用""引起来.避免中间有,号造成误识别 饮食 " ...

  2. vue2实现数据聚合【scatter-clustering】组件封装

    实现如下效果: 效果展示:https://code.juejin.cn/pen/7228568245148581943 如果不会请移步到官网的栗子,请点击查看 直接给大家上代码: 整体代码片段 1 & ...

  3. Oracle-判断表上存在高水位线

    表上高水位线:通常一个新建的表,1个8K的数据块存放100行记录,若表上经常插入删除操作,造成表的水位线很高.下面从发现高水位线的办法,及解决高水位的方法说起: 1.发现存在高水位线的表:查看字典表u ...

  4. ChatGPT API FAQ

    ChatGPT API FAQ General questions about the ChatGPT API Written by Johanna C.. Updated over a week a ...

  5. interface 接口相关【GO 基础】

    〇.接口简介 接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节.也就是说,接口可以将一种或多种特征归纳到一起,其他不同的对象通过实现此接口,来表示可以 ...

  6. Vue项目打包为桌面应用

    vue项目首先使用 npm run build 打包为dist文件后,进入dist目录得到如下文件:就是打包后的html+css+js+static 新建一个deskapp文件夹,里面在新建一个App ...

  7. 数据结构与算法 | 链表(Linked List)

    链表(Linked List)是一种线性数据结构,它由一系列节点(Node)组成,每个节点包含两部分:数据和指向下(上)一个节点的引用(或指针).链表中的节点按照线性顺序连接在一起(相邻节点不需要存储 ...

  8. docker常用命令-docker网络

    docker命令详解 docker search 在docker hub中搜索镜像: docker pull 从docker镜像源服务器拉取指定镜像或者库镜像: docker push 推送指定镜像或 ...

  9. BFF层提升业务性能实际解决方案,以及nodeJs和KOA框架介绍

    本文干货满满,介绍了用BFF层(Back-end For Front-end)中间层提升性能的整体解决方案和思路,涉及前期技术调研,聚合业务分析,聚合方法,验收,最后向同学们普及node.koa基础知 ...

  10. JAVA异常的不正确处理方式

    最近收到一个求助信息,异常堆栈如下: ``` java.lang.RuntimeException: FF1C1005 at test_ssh.sftp.Pool.get(Pool.java:25) ...