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

python的zipfile.open_python之zipfile[通俗易懂]1简述zip文件是一个常用的归档和与压缩标准。zipfile模块提供了创建、读取、写入、添加及列出zip文件的工具。zipfile里有2个非常常用的class,分别是Zipfile和ZipInfo,在绝大多数情况下,我们只需要使用这2个class就可以了。Zipfile是主要的类,用于创建和读取zip文件,而ZipInfo是储存zip文件每个信息的。2Zipfile基本操作1创建一个zip对…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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.net/192760.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微信小程序推送模板消息功能_小程序推送消息设置

    微信小程序推送模板消息功能_小程序推送消息设置今天KingYiFan给大家分享一下小程序模板消息推送:根据微信小程序最新机制:2019年10月份微信发布了最新模板消息整改公告,由模板消息更改为订阅消息,模板消息将于2020年1月10日下线,下线后这篇文章将失效。最新微信订阅消息文章已发布,请大家移步:https://blog.csdn.net/weixin_39984161/article/details/103888343公告如下:…

    2022年9月1日
    2
  • 将三维数组中的同名的键拆分成三维数组的每个数组中包括原来不同的二维数组的键…

    将三维数组中的同名的键拆分成三维数组的每个数组中包括原来不同的二维数组的键…

    2021年11月4日
    41
  • 哈佛大学公开课-幸福课-个人笔记

    哈佛大学公开课-幸福课-个人笔记b站视频链接十一讲:养成良好习惯舒适区拉升区 慢慢的做出改变,一步步来。暴力区人的一生一般都是在舒适区度过的,你要让自己适度的走出然后走进拉升区。自律是有一定量的是有限的,用了可能就没有了,需要时间来恢复。我们不可能拥有很多自律,但同时自律也不是那么重要。老师比喻:1.AB—-榨菜与巧克力,A是巧克力-榨菜,B榨菜-巧克力 最后是A先吃了榨菜,因为A在克制自己不…

    2022年7月18日
    14
  • Java高级工程师薪资多少?如何才能成为一个优秀的高级程序员?

    Java高级工程师薪资多少?如何才能成为一个优秀的高级程序员?Java语言在2015年首次荣登编程语言热门榜的榜首,2018年再度登上榜首,下面不妨让我们来看看Java开发工程师的薪资待遇如何。以上是三张在猎聘网上随便找的三张截图,可见高级工程师年薪都是在30-60万。那么重点来了,怎样才算是一个高级工程师呢?你是否也能成为一个优秀的高级工程师?工程师必须掌握的知识点是那些?人人都想成为高薪架构师,为什么现在高…

    2022年7月8日
    33
  • java web 前端开发框架和流程「建议收藏」

    java web 前端开发框架和流程「建议收藏」1 通常JavaWeb开发框架举个例子,对于广告系统的来说,我们先不管一些job,byOminentShopperHelper”style=”color:rgb(59,115,175);border:none!important;display:inline-block!important;float:none!important;font-weight

    2022年7月9日
    23
  • 更改nginx默认端口_centos启动nginx

    更改nginx默认端口_centos启动nginx在基于CentOS或RHEL的Linux发行版中,需要安装policycoreutils软件包并添加SELinux对Nginx所需的以下规则以绑定到新端口。这里需要先安装semanage再安装policycoreutils软件包。安装semanage命令:yuminstallsemanage如果提示Nopackagesemanageavailable执行如下命令:yumprovidessemanage以上命令执行成功后,再执行:yum-yinstallpoli

    2022年9月8日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号