zipfile模块
zipfile模块
压缩包对象. 主要是构建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()