首页 > 编程知识 正文

python zipfile模块,qpython

时间:2023-05-03 14:58:23 阅读:17583 作者:1430

''''

@author:Peng (不是原始的) ) ) ) )。

记录:开发历史记录

''''

最近正在编写Android APP,但需要下载服务器上的数据。 部分PDF直接传输会增加通信的数据量,增加下载时间。 服务器可以在传输这些数据之前进行压缩,并在客户端收到数据后进行解压缩,从而减少互联网上传输的数据通信量,缩短下载时间,提高客户满意度。 使用zipfile模块提供的api,可以轻松地在Python上执行类似的任务。

zip文件格式是常用的文档压缩标准,ziplib模块使用ZipFile类处理zip文件。 具体说明如下。

classzipfile.zipfile(file[,mode[,compression[,allowZip64]]] )

创建表示zip文件的ZipFile对象。 参数file是文件的路径或类文件对象(file-like object ); 参数模式指示打开zip文件的模式,默认值为“r”,指示要读取已经存在的zip文件,而“w”或“a”,“w”指示创建新的zip文档或现有的zip文档参数compression表示创建zip文档时使用的压缩方法。 可以使用zipfile.ZIP_STORED或zipfile.ZIP_DEFLATED值。 zipfile.ZIP_STORED是缺省压缩方法,仅存储,不压缩内容。如果操作的zip文件大小超过2G,则必须将allowZip64设置为True。

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

zipfile.Getinfo(name ) :

获取zip文档中指定文件的信息。 返回包含文件详细信息的zipfile.ZipInfo对象。 关于这个对象,在下面具体说明。

ZipFile.infolist (

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

ZipFile.namelist (

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

zipfile.extract(member[,path[,pwd]] ) )

将zip文档中的指定文件解压缩到当前目录。 参数member指定要解压缩的文件名或相应的ZipInfo对象。 参数path指定存储分析文件的文件夹。 参数pwd是解压缩密码。 下面的示例将程序根目录下存储在txt.zip中的所有文件解压缩到D:/Work目录中:

Python

1

2

3

4

5

导入zipfile,操作系统

zipfile=zipfile.zipfile (OS.path.join (OS.getcwd )、' txt.zip ' ) )

forfileinzipFile.namelist () :

zipfile.extract(file,r'd:/Work ' ) )。

zipFile.close (

zipfile.extractall([path[,members[,pwd]]]

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

ZipFile.printdir (

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

ZipFile.setpassword(pwd )

设置zip文档的密码。

zipfile.read(name (,pwd ) )

获取zip文档中指定文件的二进制数据。 以下示例说明如何使用zip文档中的txt.txt文本文件,以及如何使用read ()方法读取二进制数据并将其保存在D:/txt.txt中的read )。

Python

1

2

3

4

5

6

#coding=gbk

导入zipfile,操作系统

zipfile=zipfile.zipfile (OS.path.join (OS.getcwd )、' txt.zip ' ) )

DATA=zipfile.read('txt.txt ' ) ) ) ) ) ) ) ) )。

(lambdaf,d:(f.write(d,f.close ) ) open ) r'd:/txt.txt ',' wb ' ),data )一行中文件写入完毕好好想想哦~~~

zipFile.close (

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

将指定的文件添加到zip文档中。 filename为文件路径,arcname为添加到zip文档后保存的名称,compress_type参数表示压缩方法,值为zipfile.ZIP_STORED或zipfile

. ZIP_DEFLATED。下面的例子演示了如何创建一个zip文档,并将文件D:/test.doc添加到压缩文档中。

Python

1

2

3

4

importzipfile,os

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

zipFile.write(r'D:/test.doc','ok.doc',zipfile.ZIP_DEFLATED)

zipFile.close()

ZipFile.writestr(zinfo_or_arcname, bytes)

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

Class 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: 获取未压缩的文件大小。

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

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

importzipfile,os

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

zipInfo=zipFile.getinfo('doc.doc')

print'filename:',zipInfo.filename

print'date_time:',zipInfo.date_time

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

print'extract_version:',zipInfo.extract_version

print'extract_version:',zipInfo.reserved

print'flag_bits:',zipInfo.flag_bits

print'volume:',zipInfo.volume

print'internal_attr:',zipInfo.internal_attr

print'external_attr:',zipInfo.external_attr

print'header_offset:',zipInfo.header_offset

print'CRC:',zipInfo.CRC

print'compress_size:',zipInfo.compress_size

print'file_size:',zipInfo.file_size

zipFile.close()

感觉使用zipfile模块来处理zip文件真的很简单。通过阅读python手册,一两个小时就掌握了zipfile模块的基本使用。哈哈,使用Python,真爽!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。