ZIP文件即压缩包,python的zipfile
模块可以很容易地实现ZIP文件的读取、解压和创建。
目录
- 读取
- 解压
- 创建
使用前需要导入
zipfile
模块。
import zipfile
读取
首先,通过zipfile.ZipFile()
函数,创建ZipFile
对象。
f = zipfile.ZipFile('filename.zip')
接下来,可以通过namelist()
方法获取压缩包中的所有文件和文件夹名称列表。
f.namelist()
压缩包中的文件可以通过getinfo()
方法传递给特定文件的ZipFile
对象。
f1 = f.getinfo('hello.txt') # hello.txt为压缩包中的一个文件
f1.file_size
f1.compress_size
f
表示整个压缩包的对象,而f1
表示压缩包中一个文件的对象。f1
的属性file_size
表示原来文件的大小,而compress_size
表示压缩后文件的大小。
最后关闭文件。
f.close()
解压
ZipFile
对象的extractall()
方法解压ZIP文件,压缩包中的文件都放到当前目录中。
f.extractall()
也可以向该方法传递一个文件夹名称,它将解压后的文件都放到这个文件夹中。
f.extractall('good')
如果需要解压单个文件,则要用到extract()
方法。
f.extarct('hello.txt') # hello.txt为压缩包中的一个文件
也可以向该方法传递第二个参数,表示解压的文件夹。
f.extarct('hello.txt', 'goodone') # hello.txt为压缩包中的一个文件
创建
如果需要压缩为ZIP文件,则需要以写模式打开ZipFile
对象,即传入w
作为第二个参数。
f = zipfile.ZipFile('filename.zip', 'w')
向该对象的write()
方法传入一个路径名,即可压缩这个路径名所指的文件。该方法的第二个参数表示压缩算法。
f = write('good.txt', compress_type=zipfile.ZIP_DEFLATED)
如果需要将文件添加到已有的压缩文件中,则需要以添加模式打开这个ZIP文件。
f = zipfile.ZipFile('filename.zip', 'a')