Python标准库中的zipfile模块仅支持CRC32加密的zip文件(请参阅此处:http ://hg.python.org/cpython/file/71adf21421d9/Lib/zipfile.py#l420)。因此,无法避免某些第三方依赖。
最简单的方法是仅安装7zip并7z
使用subprocess
标准库中的模块调用命令行实用程序:
import subprocess
subprocess.call(["7z", "x", "-ppassword", "test.zip"])
另一个选择是python模块“ PyLzma”,它也可以处理AES加密的7zip存档:https ://github.com/fancycode/pylzma。它不直接支持解密经典zip文件,但您可以使用其例程编写自己的解压缩器函数。