如何在内存中创建带目录的zip文件而不触及磁盘?

19 投票
2 回答
13773 浏览
提问于 2025-04-16 03:32

在一个Python的网页应用中,我想把一些东西打包成一个zip文件。我希望这个过程完全在内存中进行,不想把任何东西写到硬盘上。使用ZipFile.writestr方法可以做到这一点,只要我创建的是一个简单的目录结构,但如果我想在zip文件里创建文件夹该怎么做呢?

我使用的是Python 2.4。

http://docs.python.org/library/zipfile.html

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)

撰写回答