Python处理压缩文件:zipfile模块使用详解

在Python中,处理压缩文件的方式有很多种,其中最常用的是使用zipfile模块。zipfile模块提供了一种方便的方式来创建、读取和解压缩zip格式的文件。


1. 创建压缩文件

使用zipfile模块创建压缩文件非常简单,只需要使用ZipFile类的构造函数即可:

import zipfile

with zipfile.ZipFile('test.zip', 'w') as myzip:
    myzip.write('file1.txt')
    myzip.write('file2.txt')

其中,ZipFile类接收两个参数,第一个参数是要创建的压缩文件名,第二个参数是打开方式,'w'表示写入模式。

write方法可以接收两个参数,第一个参数是要写入压缩文件的文件名,第二个参数是写入后在压缩文件中的文件名,如果不指定第二个参数,则默认使用第一个参数中的文件名。


2. 读取压缩文件

如果要读取压缩文件中的内容,可以使用ZipFile类的实例对象的open方法打开文件,然后使用read方法读取其中的内容:

import zipfile

with zipfile.ZipFile('test.zip', 'r') as myzip:
    with myzip.open('file1.txt') as myfile:
        content = myfile.read().decode()
        print(content)

其中,open方法接收一个参数,即要打开的压缩文件中的文件名。read方法读取文件内容并返回一个bytes对象,需要使用decode方法将其转换为字符串。


3. 解压缩文件

使用zipfile模块解压缩文件也非常简单,只需要使用ZipFile类的extractall方法即可:

import zipfile

with zipfile.ZipFile('test.zip', 'r') as myzip:
    myzip.extractall()

其中,extractall方法接收一个参数,即要解压缩的文件夹路径,默认为当前目录。


4. 获取压缩文件中的文件列表

使用ZipFile类的namelist方法可以获取压缩文件中的所有文件名:

import zipfile

with zipfile.ZipFile('test.zip', 'r') as myzip:
    files = myzip.namelist()
    print(files)

其中,namelist方法不接收任何参数。


5. 获取压缩文件中的文件信息

使用ZipFile类的getinfo方法可以获取压缩文件中的文件信息:

import zipfile

with zipfile.ZipFile('test.zip', 'r') as myzip:
    info = myzip.getinfo('file1.txt')
    print(info.filename)
    print(info.file_size)

其中,getinfo方法接收一个参数,即要获取信息的文件名。


6. 压缩文件加密

使用ZipFile类的setpassword方法可以对压缩文件进行加密,需要注意的是,一旦加密,就必须在解压缩时提供密码。

import zipfile

with zipfile.ZipFile('test.zip', 'w') as myzip:
    myzip.setpassword(b'mypassword')
    myzip.write('file1.txt')

其中,setpassword方法接收一个参数,即要设置的密码,需要转换为bytes类型。


以上就是zipfile模块的使用方法,希望对大家有所帮助。

猿教程
请先登录后发表评论
  • 最新评论
  • 总共0条评论