前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python的zipfile.open_python之zipfile[通俗易懂]

python的zipfile.open_python之zipfile[通俗易懂]

作者头像
全栈程序员站长
发布2022-09-30 16:02:19
6350
发布2022-09-30 16:02:19
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

1 简述

zip文件是一个常用的归档和与压缩标准。

zipfile模块提供了创建、读取、写入、添加及列出zip文件的工具。

zipfile里有2个非常常用的class,分别是Zipfile和ZipInfo,在绝大多数情况下,我们只需要使用这2个class就可以了。

Zipfile是主要的类,用于创建和读取zip文件,而ZipInfo是储存zip文件每个信息的。

2 Zipfile基本操作

1 创建一个zip对象

file_zip = zipfile.ZipFile(r’D:\workspace\pachong\ceshi\channel.zip’, ‘r’)

2 返回压缩包内所有文件名的列表

file_name = file_zip.namelist()

3 获取指定文件的信息

file_infor = file_zip.getinfo(’29.txt’)

4 获取zip文档内所有文件的信息

info_list = file_zip.infolist()

5 将文档内的指定文件解压到当前目录

file_zip.extract(’29.txt’)

6 将zip文件的信息打印到控制台上

file_zip.printdir()

7 设置zip文档的密码

file_zip.setpassword(pwd)

8 获取zip文档内指定文件的二进制数据

file_zip.read()

9 将指定文件添加到zip文档中

file_zip.write(filename[, arcname[, compress_type]])

filename为文件路径,arcname为添加到zip文档之后保存的名称, 参数compress_type表示压缩方法,它的值可以是zipfile. ZIP_STORED 或zipfile. ZIP_DEFLATED。

10 将二进制数据直接写入到压缩文档

file_zip.writestr(zinfo_or_arcname, bytes)

3 ZipInfo基本操作

ZipFile.getinfo(name) 方法返回的是一个ZipInfo对象,表示zip文档中相应文件的信息。它支持如下属性:

ZipInfo.filename: 获取文件名称。

ZipInfo.date_time: 获取文件最后修改时间。返回一个包含6个元素的元组:(年, 月, 日, 时, 分, 秒)

ZipInfo.compress_type: 压缩类型。

ZipInfo.comment: 文档说明。

ZipInfo.extr: 扩展项数据。

ZipInfo.create_system: 获取创建该zip文档的系统。

ZipInfo.create_version: 获取 创建zip文档的PKZIP版本。

ZipInfo.extract_version: 获取 解压zip文档所需的PKZIP版本。

ZipInfo.reserved: 预留字段,当前实现总是返回0。

ZipInfo.flag_bits: zip标志位。

ZipInfo.volume: 文件头的卷标。

ZipInfo.internal_attr: 内部属性。

ZipInfo.external_attr: 外部属性。

ZipInfo.header_offset: 文件头偏移位。

ZipInfo.CRC: 未压缩文件的CRC-32。

ZipInfo.compress_size: 获取压缩后的大小。

ZipInfo.file_size: 获取未压缩的文件大小。

4 示例

zip文档内包括一个duoduo.txt的文本文件,使用read()方法读取其二进制数据,然后保存到D:/duoduo.txt。

import zipfile, os

zipFile = zipfile.ZipFile(os.path.join(os.getcwd(), ‘duoduo.zip’))

data = zipFile.read(‘duoduo.txt’)

with open(r’d:/duoduo.txt’,’wb’) as f:

for d in data:

f.write(d)

创建一个zip文档,并将文件D:/test.doc添加到压缩文档中

import zipfile, os

zipFile = zipfile.ZipFile(r’D:/test.zip’), ‘w’)

zipFile.write(r’D:/test.doc’, ‘保存的名字’, zipfile.ZIP_DEFLATED)

zipFile.close()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192760.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月16日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档