Python实现批量压缩文件文件夹——zipfile

Python013

Python实现批量压缩文件文件夹——zipfile,第1张

zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是很常见的zip格式,所以这个模块使用频率也是比较高的,

在这里对zipfile的使用方法做一些记录。即方便自己也方便别人。

Python zipfile模块用来做zip格式编码的压缩和解压缩的,要进行相关操作,首先需要实例化一个 ZipFile 对象。ZipFile 接受一个字符串格式压缩包名称作为它的必选参数,第二个参数为可选参数,表示打开模式,类似于文件操作,有r/w/a三种模式,分别代表读、写、添加,默认为r,即读模式。

zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要使用这两个class就可以了。ZipFile是主要的类,用来创建和读取zip文件而ZipInfo是存储的zip文件的每个文件的信息的。

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

获取zip文档内指定文件的信息。返回一个zipfile.ZipInfo对象,它包括文件的详细信息。

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

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

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

解压zip文档中的所有文件到当前目录。参数members的默认值为zip文档内的所有文件名称列表,也可以自己设置,选择要解压的文件名称。

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

设置zip文档的密码。

Python压缩ZIP文件:

import zipfile

f = zipfile.ZipFile(target,'w',zipfile.ZIP_DEFLATED)

f.write(filename,file_url)

f.close()

其中target:是压缩后要保存的路径,可以是: 'C:/temp/'

ZIP_DEFLATED:表示压缩,还有一个参数:ZIP_STORE:表示只打包,不压缩。

这个Linux中的gz跟tar格式有点类似.

write方法如果只有一个参数filename的话,表示把你filename所带的路径全部压缩到zip文件中。如果带两个参数,表示把filename路径中的那个file压缩一下并且存放到file_url中,中间没有增加任何的文件夹。

如果要压缩很多的文件,循环的write就ok了, 最后close掉。

Python解压ZIP文件:

f = zipfile.ZipFile("zipfilePath",'r')

for file in f.namelist():

    f.extract(file,"temp/")

zipfilePath是压缩文件的路径

循环访问该压缩文件中的文件,并且一个一个file的解压到对应的"temp"文件夹中