zipfile包是python中用来处理zip文件压缩和解压缩的
一、导包import 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()方法