Python–Zip压缩&解压缩实例
创建zip压缩文件
*例子:将多个文件压缩到新建zip压缩包
#压缩文件
import time,zipfile
class zip:
def get_zip(self,files,zip_name):
zp=zipfile.ZipFile(zip_name,'w', zipfile.ZIP_DEFLATED)
for file in files:
zp.write(file)
zp.close()
time.sleep(5)
print('压缩完成')
if __name__ == '__main__':
z=zip()
# 文件的位置,多个文件用“,”隔开
files=['D:/li/国际.txt','D:/li/Untitled.m']#此方法无法将整个文件夹压缩至zip
# 压缩包路径及名字
zip_file = 'D:/227.zip'
z.get_zip(files,zip_file)
*例子:将文件夹压缩到新建zip压缩包
# -*- coding: utf-8 -*-
import os
import zipfile
def get_zip_file(input_path, result):
files = os.listdir(input_path)
for file in files:
if os.path.isdir(input_path + '/' + file):
get_zip_file(input_path + '/' + file, result)
else:
result.append(input_path + '/' + file)
def zip_file_path(input_path, output_path, output_name):
"""
:param input_path: 压缩的文件夹路径
:param output_path: 解压(输出)的路径
:param output_name: 压缩包名称
:return:
"""
f = zipfile.ZipFile(output_path + '/' + output_name, 'w', zipfile.ZIP_DEFLATED)
filelists = []
get_zip_file(input_path, filelists)
for file in filelists:
f.write(file)
# 调用close方法才会保证完成压缩
f.close()
return output_path + r"/" + output_name
if __name__ == '__main__':
zip_file_path(r"D:\新建文件夹", 'D:', '123.zip')
解压zip文件
ZipFile.extract(member[, path[, pwd]])
参数member指定要解压的文件名称或对应的ZipInfo对象;参数path指定了解析文件保存的文件夹;参数pwd为解压密码。
*例子:将保存在程序根目录下的input.zip内的所有文件解压到桌面
#将保存在桌面的input.zip内的所有文件解压到D盘
import zipfile
import os
zipFile = zipfile.ZipFile('C:/Users/Desktop/input.zip')
for file in zipFile.namelist():
zipFile.extract(file, 'D:/li')
#解压路径无需提前新建空文件夹,若想命名解压后文件夹,只需在path中修改,如希望解压后文件夹名为“new”,则将此句改为zipFile.extract(file, 'D:/new')
zipFile.close()
ZipFile.extractall([path[, members[, pwd]]])
解压zip文档中的所有文件到当前目录。参数members的默认值为zip文档内的所有文件名称列表,也可以自己设置,选择要解压的文件名称。
*例子:将保存在程序根目录下的input.zip内的所有文件解压到桌面
#将保存在桌面的input.zip内的所有文件解压到D盘,效果同上例
import zipfile
import os
zipFile = zipfile.ZipFile('C:/Users/li/Desktop/input.zip')
zipFile.extractall('D:/new')
zipFile.close()
参考链接:
https://www.jb51.net/article/167861.htm
https://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.extract
…碎碎念写在后面…
小白初学Python,一点一点照葫芦画瓢,写出来的也都是适合新手的,各路大神看了莫要吐槽(*•ω•),欢迎各位神仙指路助我头秃(ૢ˃ꌂ˂ૢ)
今天的Python就学到这里啦,回见\(^∀^)メ(^∀^)ノ