Python中使用zipfile和pyzipper实现带密码的zip文件压缩与解压详解
1、安装zipfile
pip install zipfile36
2、解压缩zip文件
import zipfile
zip_ref = zipfile.ZipFile('3.zip','r') #读取文件
zip_ref.extractall('.//3//') #解压路径
zip_ref.close()
3、压缩zip文件
zipf = zipfile.ZipFile('31.zip','w') #新建文件
zipf.write('1.jpg') #添加第一个文件
zipf.write('3.py') #添加第二个文件
zipf.write('.//3.py') #添加带有路径的文件
zipf.close() #关闭文件
打包一个目录
import os
directory = './/FileZilla-3.58.0' #目录路径
zipf = zipfile.ZipFile('FileZilla2.zip','w') #新建压缩文件
for root,dirs,files in os.walk(directory):
for file in files:
file_path = os.path.join(root, file)
zipf.write(file_path)
zipf.close()
4、生成加密的zip文件
需要使用 pyzipper
安装pyzipper
pip install pyzipper
压缩文件
import pyzipper
zipf = pyzipper.AESZipFile('1.zip','w',compression=pyzipper.ZIP_DEFLATED, encryption=pyzipper.WZ_AES)
password='123456' #密码
zipf.setpassword(password.encode('utf-8')) #设置密码
zipf.write('11.py') #添加文件
zipf.close()
5、解压缩带密码的zip文件
import pyzipper
zipf = pyzipper.AESZipFile('1.zip','r') #打开文件
password='123456' #密码
zipf.setpassword(password.encode('utf-8')) #设置密码
zipf.extractall('') #解压缩到当前目录
zipf.close()
如果密码错误,提示
6、其他
显示 pyzipper.AESZipFile 对象 中的文件
zipf.printdir()
作者:lilv66