如何创建一个密码加密的zip文件?

18 投票
5 回答
55293 浏览
提问于 2025-04-15 18:51

如何用Python代码创建一个密码加密的压缩文件?我可以使用一些可以通过apt-get安装的工具,在命令行上操作。

5 个回答

5

其实,setpassword("yourpassword") 这个命令只能用来提取文件,而不能用来创建一个压缩文件。

解决办法(我个人不太喜欢):

如何在Python中创建一个加密的ZIP文件?

6

提取文件其实很简单,你只需要用到zipfile.ZipFile.setpassword()这个功能,它是在Python 2.6版本中引入的。不过,标准的Python库并不支持创建加密的zip文件。

市面上有一些商业库可以让Python支持创建加密和需要密码的zip文件。如果你想使用免费的工具,那就需要用到标准的zip命令行工具。

zip -e -Ppassword filename.zip fileA fileB ...

36

要使用开源的 7-Zip 工具创建一个加密的压缩文件(命名为 'myarchive.zip'),可以按照以下步骤操作:

rc = subprocess.call(['7z', 'a', '-pP4$$W0rd', '-y', 'myarchive.zip'] + 
                     ['first_file.txt', 'second.file'])

首先,安装 7-Zip,输入:

$ sudo apt-get install p7zip-full

如果你想手动解压(以证明它和其他压缩工具的兼容性),可以输入:

$ unzip myarchive.zip

然后在提示框中输入 P4$$W0rd 作为密码。

或者在 Python 2.6 及以上版本中也可以这样做:

>>> zipfile.ZipFile('myarchive.zip').extractall(pwd='P4$$W0rd')

撰写回答