zipfile包是python中用来处理zip文件压缩和解压缩的

一、导包



import zipfile


二、zipfile.ZipFile类
  •  z = ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=True,compresslevel=None) 
  • file:文件名
  • mode:模式可以是'r', 'w', 'x' 或者'a'
  • compression:压缩,默认ZIP_STORED(无压缩),其他可以为ZIP_DEFLATED (zlib)、ZIP_BZIP2 (bz2) or ZIP_LZMA (lzma)
  • allowZip64:是个bool型变量,当设置为True的时候就是说可以用来创建大小大于2G的zip文件,默认值是True
  • compresslevel:压缩级别
  • 解压缩(mode为'r')
  • z = ZipFile('iig.zip')
  • z.namelist()
  • 以列表的形式显示压缩文件夹iig.zip中的所有文件名
    z.namelist()Out: ['Change_log_data.csv', 'Change_Log_Data.xls', 'IIR_OCOMM.csv', 'IIR_OCOMM.xls']
  • z.extract(member, path=None, pwd=None)
  • 解压某个文件到指定path下,如果该path目录不存在,则自动创建,pwd为解压密码
    z.extract('IIR_OCOMM.csv','./test')Out: 'test\\IIR_OCOMM.csv'
    将IIR_OCOMM.csv文件解压缩到当前目录test文件夹下,不存在,自动创建test文件夹
  • z.extractall(path=None, members=None, pwd=None)
  • 默认解压z.namelist()中的所有文件到指定目录下,目录不存在则自动创建,pwd为解压密码,members参数也可以指定,但必须是z.namelist()的子集
  • z.close()    #和文件操作一样,最后必须调用close()方法
  • 压缩(模式'w')
  • z = zipfile.ZipFile('test.zip','w')  #压缩后的文件名为test.zip
  • z.write(filename, arcname=None, compress_type=None, compresslevel=None)
  • filename指的是需要压缩的文件名
  • 将当前目录下iig文件夹下的所有文件压缩到test.zip文件中(实际就是压缩文件夹)
    for filename in os.listdir('./iig'): z.write('./iig/'+filename)
  • 如果是压缩某个文件,比如z.write('./IIR_OCOMM.CSV')
  • z.close() 最后必须调用close()方法