我有一个用例,我需要对附加到电子邮件的受密码保护的 zip 文件进行解密,并将其替换为未加密的相同 zip 文件。到目前为止我所拥有的:
import zipfile
import StringIO
...
if part.get_content_type() == "application/zip":
encrypted_string = part.get_payload().decode("base64")
encrypted_zip = zipfile.ZipFile(StringIO(encrypted_string))
encrypted_zip.setpassword("password")
我知道 zip 文件现在已尽我所能解密encrypted_zip.namelist()
并且可以正常工作。现在我在 var encrypted_zip 中有常规 zip,我只想对其进行 base64 编码并替换当前附件的有效负载并继续下一个附件。但是,ZipFile 没有我可以用来重新编码它的“.to_string()”方法。
我如何实现这一目标?