无法使用python zipfile库解压缩带有密码的.zip文件
我用Gnome归档管理器(Ubuntu操作系统)创建了一个zip文件。我用密码创建了zip文件,并尝试使用无法使用python zipfile库解压缩带有密码的.zip文件,python,python-3.x,zipfile,Python,Python 3.x,Zipfile,我用Gnome归档管理器(Ubuntu操作系统)创建了一个zip文件。我用密码创建了zip文件,并尝试使用zipfilePython库解压它: import zipfile file_name = '/home/mahmoud/Desktop/tester.zip' pswd = 'pass' with zipfile.ZipFile(file_name, 'r') as zf: zf.printdir() zf.extractall(path='/home/mahmoud/
zipfile
Python库解压它:
import zipfile
file_name = '/home/mahmoud/Desktop/tester.zip'
pswd = 'pass'
with zipfile.ZipFile(file_name, 'r') as zf:
zf.printdir()
zf.extractall(path='/home/mahmoud/Desktop/testfolder', pwd = bytes(pswd, 'utf-8'))
当我运行这段代码时,我得到了以下错误,我非常确定密码是正确的。错误是:
File "/home/mahmoud/anaconda3/lib/python3.7/zipfile.py", line 1538, in open
raise RuntimeError("Bad password for file %r" % name)
RuntimeError: Bad password for file <ZipInfo filename='NegSkew.pdf' compress_type=99 filemode='-rw-rw-r--' external_attr=0x8020 file_size=233252 compress_size=199427>
文件“/home/mahmoud/anaconda3/lib/python3.7/zipfile.py”,第1538行,打开
引发运行时错误(“文件%r”%name的密码错误)
RuntimeError:文件的密码错误
如何解压文件?zipfile库不支持AES加密(compress_type=99),只支持CRC-32,如
ZipDecrypter
代码()中所述\u ZipDecrypter
在ZipFile.open中引发特定运行时错误之前被调用和使用,该错误可从提取所有
进行跟踪
您可以使用pyzippers
library()而不是zipfile
来解压缩文件:
import pyzipper
file_name = '/home/mahmoud/Desktop/tester.zip'
pswd = 'pass'
with pyzipper.AESZipFile(file_name) as zf:
zf.extractall(path='/home/mahmoud/Desktop/testfolder', pwd = bytes(pswd, 'utf-8'))
我试过你的代码,它对我有效,你能用另一个程序用同样的密码解压它吗?为什么文件名是“negswek.pdf”例外?我试过用winrar和7z解压文件,两个都很好,密码都是正确的。所有这些都是在windows机器@NicoMüllerHmm上完成的。这是一个有趣的问题,我能够重现你们的观察结果。我运行的是Ubuntu18.04.4LTS和Python3.7.5。我制作了一个简单的文本文件,在Gnome归档管理器中对其进行压缩和加密。和您一样,当我尝试执行
提取所有
时,我看到文件的密码错误
。这绝对是得到了我的支持票,我会戳它一点。我倾向于认为Python的内置ZIP库可能不支持Gnome的存档管理器使用的加密算法,但我还没有任何东西来支持它。@liorr异常显示要从ZIP中提取的文件的名称