Как создать zip файл в памяти с каталогами, не касаясь диска?
В веб-приложении python я собираю некоторые вещи в zip файле. Я хочу сделать это полностью на лету, в памяти, не касаясь диска. Это нормально, используя ZipFile.writestr, пока я создаю структуру плоского каталога, но как мне создать каталоги внутри zip?
Я использую python2.4.
http://docs.python.org/library/zipfile.html
Ответы
Ответ 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 файлов.