本文记录python 利用模块zipfile实现对文件的压缩机解压处理,对应日常的工作能提供很大的便利性
1:文件压缩成zip
author:he
qq:760863706
python:3.5
date:2018-9-20
from pathlib import Path
import zipfile
def create_zip(dir,new_zip):
# dir 待处理文件夹或文件
# new_zip 生成目录zip文件
file_lists = []
# 实例
p = Path(dir)
if p.is_file():
file_lists.append(p)
else :
# 遍历文件夹
filelist = list(p.glob('**/*'))
for file in filelist:
# 获取到的文件添加到列表中
if Path.is_file(file):file_lists.append(file)
#实例化,mode为 'w' 表示对zip文件清空后添加,'a'表示对zip文件追加的方式添加,allowZip64为True表示可压缩大于2G文件
zip = zipfile.ZipFile(new_zip,mode='w',compression=zipfile.ZIP_STORED,allowZip64=False)
for filename in file_lists:
#获取文件名
arcname = Path(filename).name
#windowPath转str
zip.write(str(filename),arcname)
zip.close()
2:zip文件解压
from pathlib import Path
import zipfile
def unzip(zpath,to_dir):
# zpath 待处理zip文件
# to_dir 目标文件夹
# 创建目标文件夹
Path(to_dir).mkdir(parents=True, exist_ok=True)
#实例化
zip = zipfile.ZipFile(zpath)
#一次性全部解压
# zip.extractall(path=to_dir)
# zip.close()
for file in zip.namelist():
#单次解压
zip.extract(file,path=to_dir)
zip.close()
本文模块pathlib 需要满足python3.4以上,pathlib用起来感觉很多方面比os处理更便捷