在Python中,处理压缩文件的方式有很多种,其中最常用的是使用zipfile模块。zipfile模块提供了一种方便的方式来创建、读取和解压缩zip格式的文件。
使用zipfile模块创建压缩文件非常简单,只需要使用ZipFile类的构造函数即可:
import zipfile with zipfile.ZipFile('test.zip', 'w') as myzip: myzip.write('file1.txt') myzip.write('file2.txt')
其中,ZipFile类接收两个参数,第一个参数是要创建的压缩文件名,第二个参数是打开方式,'w'表示写入模式。
write方法可以接收两个参数,第一个参数是要写入压缩文件的文件名,第二个参数是写入后在压缩文件中的文件名,如果不指定第二个参数,则默认使用第一个参数中的文件名。
如果要读取压缩文件中的内容,可以使用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方法将其转换为字符串。
使用zipfile模块解压缩文件也非常简单,只需要使用ZipFile类的extractall方法即可:
import zipfile with zipfile.ZipFile('test.zip', 'r') as myzip: myzip.extractall()
其中,extractall方法接收一个参数,即要解压缩的文件夹路径,默认为当前目录。
使用ZipFile类的namelist方法可以获取压缩文件中的所有文件名:
import zipfile with zipfile.ZipFile('test.zip', 'r') as myzip: files = myzip.namelist() print(files)
其中,namelist方法不接收任何参数。
使用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方法接收一个参数,即要获取信息的文件名。
使用ZipFile类的setpassword方法可以对压缩文件进行加密,需要注意的是,一旦加密,就必须在解压缩时提供密码。
import zipfile with zipfile.ZipFile('test.zip', 'w') as myzip: myzip.setpassword(b'mypassword') myzip.write('file1.txt')
其中,setpassword方法接收一个参数,即要设置的密码,需要转换为bytes类型。
以上就是zipfile模块的使用方法,希望对大家有所帮助。
本文为翻滚的胖子原创文章,转载无需和我联系,但请注明来自猿教程iskeys.com