压缩包对象. 主要是构建ZipFile类, 关闭, 获取文件ZipInfo, 提取和写入, 设置密码等一些控制压缩包的方法.
zipfile.ZipFile(file[, mode[, compression[, allowZip64]]]): 返回压缩包对象. file可以是文件名或对象, mode为’w’, ‘r’, ‘a’三种, 对应写读和追加. compression是压缩模式, ZIP_STORED (只储存不压缩)或 ZIP_DEFLATED, 默认前者, 后者需要zlib模块. allowZip64默认False, True时后缀为zip64, 可以大于2GB.
close() 关闭打开的压缩包
open(name[,mode[,pwd]]) 打开压缩包内的文件返回类文件对象(ZipExtFile, 只能进行读取). 并不是打开压缩包! name是压缩包内的文件名或ZipInfo对象; mode是’r’,’U’,’rU’, 默认r. pwd当有密码时使用. read(name[,pwd]) 和上类似, 但返回的是字节内容.
getinfo(name) 通过文件名返回ZipInfo对象. infolist()返回所有ZipInfo成员的列表. namelist()返回所有ZipInfo成员的名称的列表.
extract(member[,path[,pwd]]) 解压一个文件, member是文件名/ZipInfo对象; path解压路径, 默认’.’解压到当前文件夹; pwd是密码. 返回解压文件/文件夹的绝对路径.
extractall([path[,members[,pwd]]) 解压所有(部分)文件, 基本同上. members可以指定部分文件名,namelist()的子集.
printdir() 输出压缩包内文件信息到屏幕
setpassword(pwd) 设置缺省密码, 可以方便解压.
testzip() 会检查所有文件, 返回有错的文件的文件名.
write(filename[, arcname[, compress_type]]) 将文件写入压缩包. arcname是文件在压缩包里的别名. 类似地writestr(zinfo_or_arcname, bytes[, compress_type]) 写byte串到压缩包.
import zipfile # 压缩 z = zipfile.ZipFile(\'laxi.zip\', \'w\') # 获取一个zip压缩包 z.write(\'c1\') # 将文件添加到压缩包 z.write("c2") # 将文件添加到压缩包 z.close() # 关闭压缩包 # print(z.namelist()) # 获取压缩包内所有文件的名字 # 解压 z = zipfile.ZipFile(\'laxi.zip\', \'r\') print(z.namelist()) z.extract("c1") # 解压压缩包内指定的文件,如果文件存在则覆盖,如果不想覆盖则需要添加路径path="..." z.extractall() # 解压整个压缩包,如果文件存在则覆盖,如果不想覆盖则需要添加路径path="..." z.close()