一、压缩文件与查看压缩文件信息
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()