Подтвердить что ты не робот

Как создать zip файл в памяти с каталогами, не касаясь диска?

В веб-приложении python я собираю некоторые вещи в zip файле. Я хочу сделать это полностью на лету, в памяти, не касаясь диска. Это нормально, используя ZipFile.writestr, пока я создаю структуру плоского каталога, но как мне создать каталоги внутри zip?

Я использую python2.4.

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

4b9b3361

Ответ 1

Что '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)

Ответ 2

Используйте StringIO. очевидно, чтобы использовать их для zip файлов.