我在Python 2.5中使用ZipFile创建一个ZIP文件,它到目前为止工作正常:
import zipfile, os locfile = "test.txt" loczip = os.path.splitext (locfile)[0] + ".zip" zip = zipfile.ZipFile (loczip, "w") zip.write (locfile) zip.close()
但我找不到如何加密ZIP文件中的文件.我可以使用系统并调用PKZIP -s,但我想必须有更"Pythonic"的方式.我正在寻找一个开源解决方案.
我创建了一个简单的库来在python中创建一个密码加密的zip文件.- 在这里
import pyminizip compression_level = 5 # 1-9 pyminizip.compress("src.txt", "dst.zip", "password", compression_level)
该库需要zlib.
我已经检查过该文件可以在WINDOWS/MAC中提取.
重复的问题/sf/ask/17360801/建议使用7z
而不是zip
.我的经历证明了这一点.
复制/粘贴@JFSebastian的答案也是为了完整性:
'myarchive.zip'
使用开源7-Zip
实用程序创建加密的zip存档(命名):
rc = subprocess.call(['7z', 'a', '-mem=AES256', '-pP4$$W0rd', '-y', 'myarchive.zip'] + ['first_file.txt', 'second.file'])
要安装7-Zip,请键入:
$ sudo apt-get install p7zip-full
要手动解压缩(以证明与zip utitity的兼容性),请键入:
$ unzip myarchive.zip
并P4$$W0rd
在提示符下输入.
或者在Python 2.6+中相同:
>>> zipfile.ZipFile('myarchive.zip').extractall(pwd='P4$$W0rd')