前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python三方库之zipfile

python三方库之zipfile

作者头像
雷子
发布2023-12-06 17:21:05
1600
发布2023-12-06 17:21:05
举报

归档、压缩等名词如何定义?

  • 归档:也称为打包。 (1)方式:将多个文件合并到一个文件当中 (2)特点:归档文件没有经过压缩,它占用的空间是所有文件和目录的总和
  • 解包: (1)方式:将文件/目录集合(归档)的文件进行释放。(2)特点:与归档操作是逆向的
  • 压缩: (1)方式:压缩时将多个文件进行有损或者无损的合并到一个文件当中。 (2)特点:压缩文件采用了不同的存储方式,它占用的空间比所有文件或者目录总和要小
  • 解压缩: (1)方式:将压缩文件中的多个文件,释放出来。 (2)特点:是压缩的反向操作

  1. zipfile模块常用方法

zipfile模块用于文件的压缩操作

方法

作用

zipfile.ZipFile

ZIP文件的读写操作

zipfile.PyZipFile

创建包含Python库的ZIP归档文件

zipfile.ZipInfo

归档文件中的一个成员信息

zipfile.is_zipfile()

判断filename是否是有效的ZIP文件,并返回一个布尔类型的值

zipfile.ZIP_STORED

表示一个压缩的归档成员

zipfile.ZIP_DEFLATED

表示普通的ZIP压缩方法,需Zlib模块支持

zipfile.ZIP_BZIP2

表示BZIP2压缩方法,需bz2模块支持

zipfile.ZIP_LZMA

表示LZMA压缩方法,需lzma模块支持

  • zipfile.ZipFile类:常用于创建、打开zip文件对象 (1) 可以与上下文管理器with进行使用 (2)zipfile.ZipFile类对象提供的方法有:write(),read(),close(),extract()等方法 标题作用getinfo (filename)返回一个ZipInfo对象infolist()返回包含每个压缩文件的ZipInfonamelist()返回按文件名称排序的压缩文件列表open(filename)以二进制文件类的形式访问一个归档文件,可与上下文管理器一起使用write(filename,arcname)将文件写入压缩文件里read(filename)返回压缩文件的字节数据printdir()将压缩文件里的目录打印到sys.stdoutextract()将单个压缩文件进行解压extractall()将多个压缩文件进行解压
  • zipfile.PyZipFile:创建包含Python库的ZIP归档文件 (1)PyZipFile构造方法与ZipFile构造方法参数相似,多了一个optimize参数 (2)PyZipFile实例方法比ZipFile多了一个writepy()方法
  • zipfile.ZipInfo:归档文件中的一个成员信息 (1)通过ZipFile实例对象调用getinfoll来获取ZipInfo实例对象 (2)归档文件中成员的如filename、date_time、compress_type等信息方法

2. zipfile模块压缩操作

压缩实现步骤:

  1. 创建压缩文件:zp = zipfile.ZipFile()
  2. 在zip文件中添加内容:zp.write(filename, arcname) 只能对文件进行添加,如果添加的是文件夹,则压缩结果是一个空的文件夹
  3. 关闭压缩文件:zp.close()
代码语言:javascript
复制
import zipfile

z = zipfile.ZipFile("test.zip","w")

z.write(r'testtoo.py')
z.write(r'too.py')



z.close()

print(z.printdir())

结果展示:

代码语言:javascript
复制
File Name                                             Modified             Size
testtoo.py                                     2023-10-16 08:17:44          717
too.py                                         2023-12-05 21:33:59         5642

看下,压缩文件

证明压缩文件成功

看下解压出出来的文件:

可以看到,压缩是成功的,那么接下来,看下如何去解压

3. zipfile模块解压操作

解压实现步骤:

  • 创建ZipFile实例,打开zip文件:zp = zipfile.ZipFile(zip_path, 'r')
  • 解压文件操作: (1)指定其中的某个单个文件:zp.extract(member, path) (2)解压全部文件:zp.extractall(path)
  • 关闭文件:zp.close()

代码演示

代码语言:javascript
复制
import zipfile

z = zipfile.ZipFile("test.zip","r")

z.extract('too.py','.zip')

z.extractall('zip3')

结果:

这样证明解压成功!

在我们的实际红作中,可以来使用的,比如压缩文件,加压包获取参数之类的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2. zipfile模块压缩操作
  • 3. zipfile模块解压操作
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档