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

物联沃分享整理
物联沃-IOTWORD物联网 » Python中使用zipfile和pyzipper实现带密码的zip文件压缩与解压详解

发表回复