如何在内存中创建带目录的zip文件而不触及磁盘?
在一个Python的网页应用中,我想把一些东西打包成一个zip文件。我希望这个过程完全在内存中进行,不想把任何东西写到硬盘上。使用ZipFile.writestr方法可以做到这一点,只要我创建的是一个简单的目录结构,但如果我想在zip文件里创建文件夹该怎么做呢?
我使用的是Python 2.4。
2 个回答
1
使用一个叫做 StringIO
的东西。看起来用它来处理压缩文件是没问题的。
34
在我最初的帖子评论中,'theomega' 说加一个 '/' 到文件名里就能解决问题。谢谢!
from zipfile import ZipFile
from StringIO import StringIO
inMemoryOutputFile = StringIO()
zipFile = ZipFile(inMemoryOutputFile, 'w')
zipFile.writestr('OEBPS/content.xhtml', 'hello world')
zipFile.close()
inMemoryOutputFile.seek(0)