python的文件可分哪两种文件_python组织文件(3)

今天继续分享python组织文件第三阶段,第三阶段分为两个部分,分别为用Zipfile模块压缩文件和如何在python里面读取ZIP文件。

我相信大家肯定熟悉ZIP文件(带有.zip文件扩展名),它可以包含许多其他文件的压缩 内容。压缩一个文件会减少它的大小,这在因特网上传输时很有用。因为一个 ZIP 文件可以包含多个文件和子文件夹,所以它是一种很方便的方式,将多个文件打包成一 个文件。这个文件叫做“归档文件”,然后可以用作电子邮件的附件,或其他用途。

利用zipfile模块中的函数,python程序可以创建并打开(或解压)ZIP文件。加入你有一个名字为example.zip的zip文件,比如下图

我们可以从 http://nostarch.com/automatestuff/下载这个 ZIP 文件,或者利用计算机上已有的一个 ZIP 文件。

然后我们要介绍如何在python里面读取ZIP文件。

首先我们要读取 ZIP 文件的内容,首先必须创建一个 ZipFile 对象(请注意大写首字母 Z 和 F)。ZipFile 对象在概念上与 File 对象相似,你在第 8 章中曾经看到 open()函数 返回 File 对象:它们是一些值,程序通过它们与文件打交道。要创建一个 ZipFile 对象,就调用 zipfile.ZipFile()函数,向它传入一个字符串,表示.zip 文件的文件名。 请注意,zipfile 是 Python 模块的名称,ZipFile()是函数的名称。

例如,在交互式下中输入以下代码:

>>> import zipfile, os

>>> os.chdir('C:\\') # move to the folder with example.zip

>>> exampleZip = zipfile.ZipFile('example.zip')

>>> exampleZip.namelist()

['spam.txt', 'cats/', 'cats/catnames.txt', 'cats/zophie.jpg']

>>> spamInfo = exampleZip.getinfo('spam.txt')

>>> spamInfo.file_size

13908

>>> spamInfo.compress_size

3828

>>> 'Compressed file is %sx smaller!' % (round(spamInfo.file_size / spamInfo

.compress_size, 2))

'Compressed file is 3.63x smaller!'

>>> exampleZip.close()

ZipFile 对象有一个 namelist()方法,返回 ZIP 文件中包含的所有文件和文件夹 的字符串的列表。这些字符串可以传递给 ZipFile 对象的 getinfo()方法,返回一个关于特定文件的 ZipInfo 对象。ZipInfo 对象有自己的属性,诸如表示字节数的 file_size 和 compress_size,它们分别表示原来文件大小和压缩后文件大小。ZipFile 对象表示 整个归档文件,而 ZipInfo 对象则保存该归档文件中每个文件的有用信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值