一、压缩文件与查看压缩文件信息

import zipfile
import os
#要压缩的文件目录
compress_dir = r"E://接口文档//doc//"
zipfile_name = r"E:\接口文档\test123.zip"
zip_obj = zipfile.ZipFile(zipfile_name,'w',zipfile.ZIP_DEFLATED)
basename = os.path.basename(zipfile_name)
print("basename:"+basename)
#遍历要写入的文件
for name in os.listdir(compress_dir):
    file_path = os.path.join(compress_dir,name)
    #将文件file_path归档后的文件名称为arcname
    arcname = os.path.join(basename, name)
    print(arcname)
    zip_obj.write(file_path,arcname=arcname)    
zip_obj.close()

#读取压缩文件信息
#只读方式创建ZIP文件对象
fzip = zipfile.ZipFile(zipfile_name,'r',zipfile.ZIP_DEFLATED)
#显示压缩包文件信息
fzip.printdir()
#记录压缩包文件信息,与printdir类似,内容如下:
#[<ZipInfo filename='logs/1003.log' compress_type=deflate filemode='-rw-r--r--' file_size=17 compress_size=17>
print(fzip.filelist)
#获取指定归档文件的信息
print(fzip.getinfo('test123.zip/alarm/'))
#获取文件列表
print(fzip.namelist())
fzip.close()

二、解压文件

1.解压指定文件到指定目录

import zipfile
import os
#解压缩到指定的文件目录
extractpath  = r"E://接口文档//1"
#需要解压缩的文件
zipfile_name = r"E://接口文档//test123.zip"
zip_obj = zipfile.ZipFile(zipfile_name,'r',zipfile.ZIP_DEFLATED)
extractfile = zip_obj.namelist()
if len(extractfile):
    #要解压的第一个文件
    extractname = extractfile[0]
    print("extractname:"+extractfile[0])
    #解压单个文件
    zip_obj.extract(extractfile[0],extractpath)

2.全部解压到指定目录

import zipfile
import os
#解压缩到指定的文件目录
extractpath  = r"E://接口文档//test123"
#需要解压的文件
zipfile_name = r"E://接口文档//test123.zip"
zip_obj = zipfile.ZipFile(zipfile_name,'r',zipfile.ZIP_DEFLATED)
#全部解压
zip_obj.extractall(extractpath)
zip_obj.close()