python3 zipfile,python zipfile.zipfile

python3 zipfile,python zipfile.zipfile,详解python3中zipfile模块用法

本文和大家分享一下python3中zipfile模块的详细用法和技术难点分析。感兴趣的朋友可以关注一下。

一、zipfile模块的简述

在python中,Zipfile用于压缩和解压缩邮政编码。因为这是一种非常常见的zip格式,所以经常使用这个模块。

在这里,就如何使用zipfile做一些记录。方便自己也方便别人。

zipfile中有两个非常常用的类,分别是ZipFile和ZipInfo。在大多数情况下,我们只需要使用这两个类。

ZipFile是主类,用来创建和读取zip文件,ZipInfo是存储的zip文件的每个文件的信息。

我们来介绍一下这两个类的基本操作:

二、ZipFile和Zipinfo这两个类的基本操作

1、class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])

创建一个ZipFile对象来表示一个zip文件。file参数表示文件或类似文件的对象的路径;mode参数指示打开zip文件的模式,

默认值为“r”,表示读取现有的zip文件,或“w”或“a”,而“w”表示创建新的zip文档或覆盖现有的zip文档。

导入zip文件

F=zipfile.zipfile (filename,' r') #这里的第二个参数是R以读取zip文件,W或A以创建zip文件。

f.namelist()中的for _ name:# z . name list()将返回压缩包中所有文件名的列表。

打印(f_name)

#上面的代码是读取一个zip包中所有文件的名称。

“a”表示将数据附加到现有zip文档。参数compression表示编写zip文档时使用的压缩方法,其值可以是zipfile。ZIP_STORED或zipfile。ZIP _放气。如果要操作的zip文件的大小超过2G,allowZip64应该设置为True。

ZipFile还提供了以下常用的方法和属性:

ZipFile.getinfo(名称)

获取zip文档中指定文件的信息。返回一个zip文件。ZipInfo对象,包含文件的详细信息。

ZipFile.infolist()

获取zip文档中所有文件的信息,并返回一个zipfile列表。ZipInfo

ZipFile.namelist()

获取zip文档中所有文件的名称列表。

ZipFile.extract(成员[,路径[,pwd]])

将zip文档中的指定文件解压缩到当前目录。参数member指定要解压缩的文件的名称或相应的ZipInfo对象;参数path指定保存已分析文件的文件夹;

参数pwd是解压缩密码。以下示例将程序根目录下duoduo.zip中存储的所有文件提取到D:/Work目录中:

导入zip文件,操作系统

f=zip file . zip file(OS . path . join(OS . getcwd(),' duoduo . zip ')#拼接成一个路径

对于f.namelist()中的文件:

F.extract(file,r'd:/Work') #将文件解压缩到d:/Work中

f.close()

以上是os.getcwd的用法!

zip file . extract all([路径[,成员[,pwd]])

将zip文档中的所有文件解压到当前目录。参数members的默认值是zip文档中所有文件名的列表,或者您可以自己设置并选择要解压缩的文件名。

ZipFile.printdir()

将zip文档中的信息打印到控制台。

ZipFile.setpassword(pwd)

设置zip文档的密码。

ZipFile.read(名称[,pwd])

获取zip文档中指定文件的二进制数据。下面的示例演示了read()的用法。一个zip文档包含一个duoduo.txt的文本文件,使用read()方法读取其二进制数据,然后保存到d:/duoduo.txt。

导入zip文件,操作系统

zipFile=zipfile。ZipFile(os.path.join(os.getcwd(),' duoduo.zip '))

data=zipFile.read('duoduo.txt ')

# (lambda f,d: (f.write (d),f . close())(open(r ' d:/duoduo . txt ',' WB '),data) #一行语句完成文件写操作。仔细想想~ _ ~

以open(r . d:/duoduo . txt ',' wb ')为f:

对于数据中的d:

f .写(d)

zipFile.close()

ZipFile.write(文件名[,arcname[,压缩类型]])

将指定的文件添加到zip文档中。Filename是文件路径,arcname是添加到zip文档后保存的名称,参数compress_type表示压缩方式,其值可以是zipfile。ZIP_STORED或zipfile。ZIP _放气。下面的示例演示了如何创建一个zip文档并将文件D:/test.doc添加到压缩文档中。

导入zip文件,操作系统

zipFile=zipfile .zip文件(r d:/test。zip '),' w ')

zipFile.write(r'D:/test.doc ','保存的名字zip文件.ZIP _放气)

zipFile.close()

zipfile。writestr(zinfo _ or _ arcname,字节)

writestr()支持将二进制数据直接写入到压缩文档。

2、Class ZipInfo

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

ZipInfo.filename:获取文件名称。

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

ZipInfo.compress_type:压缩类型。

ZipInfo.comment:文档说明。

ZipInfo.extr:扩展项数据。

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

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

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

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

ZipInfo.flag_bits: zip标志位。

ZipInfo.volume:文件头的卷标。

ZipInfo.internal_attr:内部属性。

ZipInfo.external_attr:外部属性。

ZipInfo.header_offset:文件头偏移位。

ZipInfo .CRC:未压缩文件的儿童权利委员会第三十二届会议。

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

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

下面一个简单的例子说明这些属性的意思:

导入活力文件,操作系统

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

zipInfo=zipFile.getinfo('文件中的文件. txt’)

打印('文件名:',zipInfo.filename) #获取文件名称

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

print ('compress_type:',zipInfo.compress_type) #压缩类型

print ('comment:',zipInfo.comment) #文档说明

print ('extra:',zipInfo.extra) #扩展项数据

print ('create_system:',zipInfo.create_system) #获取创建该活力文档的系统。

print ('create_version:',zipInfo.create_version) #获取创建活力文档的PKZIP版本。

print ('extract_version:',zipInfo.extract_version) #获取解压活力文档所需的PKZIP版本。

print ('extract_version:',zipInfo.reserved) #预留字段,当前实现总是返回0。

print ('flag_bits:',zipInfo.flag_bits) #zip标志位。

print ('volume:',zipInfo.volume) #文件头的卷标。

print ('internal_attr:',zipInfo.internal_attr) #内部属性。

print ('external_attr:',zipInfo.external_attr) #外部属性。

print ('header_offset:',zipInfo.header_offset) #文件头偏移位。

打印(' CRC:',zipInfo .CRC) #未压缩文件的儿童权利委员会第三十二届会议。

print ('compress_size:',zipInfo.compress_size) #获取压缩后的大小。

print ('file_size:',zipInfo.file_size) #获取未压缩的文件大小。

zipFile.close() #

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: