python初学者

这些猫全打包带走!还有猫粮!——zipfile模块

2019-07-11  本文已影响0人  求余的小屋

概述

zipfile模块,是python内置的,用于处理 zip 压缩文件
平常鼠标能干的,zipfile 提供的方法也都能干!
不过大多数人还是愿意用鼠标来干... ...(小声)

优点,借助 python 中的其他<文件处理>的模块
根绝任务需要,构建脚本,可以实现例如备份重要数据的操作
可以处理大量的文件,减少出错的概率,防止丢失可怜的薪资,顺便带走所有宠物,不然要 python 有何用?

使用方法

实例

压缩文件cats.zip的内容

一、创建新的压缩文件,并添加内容

我们要把实例中的内容,添加到压缩文件中去,压缩文件命名为“cats.zip”
这里,我在命令行中操作,到实例所在的目录运行

#!python3
D:py\Auto
>>> import zipfile
>>> cats_zip = zipfile.ZipFile("cats.zip", 'w')
>>> cats_zip.write("cats", "spam.txt", compress_type=zipfile.ZIP_DEFLATED)

ok, 打包完成
我用的 'w' 文件模式(写入),意味着,当cat.zip不存在时,则会创建;
但若存在,会清空同名的压缩文件内容,再写入新内容!
如果要添加文件,到已存在的压缩文件中,则文件模式要用 'a' (添加)

二、读取压缩文件,查看包含的文件

现在我的cats_zip 的压缩文件对象还没有关闭,可以继续操作

>>> cats_zip.namelist()
>>> ['spam.txt', 'cats/', 'cats/catnames.txt', 'cats/zophie.jpg']

通过.namelist()方法,我们得到了一个压缩文件内,包含的目录/子目录,以及文件名字的列表

三、读取压缩文件内,文件的相关信息

所要读取的文件信息,必须在返回的列表中,否则会报错
现在来读取 spam.txt 的为压缩的大小,和压缩后的大小

>>> spamInfo = cats_zip.getinfo("spam.txt")
>>> spamInfo.file_size
>>> 53
>>>spamInfo.compress_size 
>>> 43

注意,这里 spam.txt 是一个新的对象,文件大小是读取对象的“属性”,后面没有一对小括号

四、解压全部内容,或者个别需要的文件

>>> cats_zip.extractall()
>>> cats_zip.extract('spam.txt')
>>> cats_zip.extractall("C:\\Desktop")
>>> cats_zip.extract('spam.txt', "C\\Desktop")

总结

上一篇 下一篇

猜你喜欢

热点阅读