在文档中没有提到它,但是在Python 3上,密码应该是
bytes,而不是
str。所以:
zf.setpassword(b"1234")
请注意,密码 仅 用于 读取 ,不能用于写入!请参阅
ZipFile.openPython 3中的文档字符串。
的
ZipFile类可以读“PKZIP
2.0”加密,这不被认为是非常强(它已经已知弱点[PDF])。这可能是为什么目前(在python
2.7.13和3.6中)未在Python中实现 编写 它们的原因。
注意: zip文件上的密码所提供的保护可能不是很牢固,具体取决于您要使用它的用途。攻击者可以例如在 不知道密码的情况下 替换
zipfile中受密码保护的条目!参见例如关于security.stackexchange的此答案。
注意2: 例如winzip的最新版本可以使用AES加密压缩文件的内容。AFAIK,Python无法读取这些内容。



