Примеры работы с zip архивами из Python.
Примеры проверялись на python 2.7 ubuntu
# coding: utf8
from zipfile import ZipFile
filename = __file__
# Создание архива
z = ZipFile('archive.zip', 'w')
# Добавление файла в архив
z.write(filename, 'new_name.py')
# Добавление буфера/строки в архив как файл
z.writestr('dir/data.txt', 'buffer with data')
z.close()
# Открываем архив на чтение
z = ZipFile('archive.zip', 'r')
# Тестирование архива, пробная распаковка
z.testzip()
# Список файлов
print z.namelist()
# Читаем файл
print z.read('dir/data.txt')
z.close()
# coding: utf8
from zipfile import ZipFile
from StringIO import StringIO
# Считываем в строку (буфер)
buf = open('archive.zip', 'r').read()
# Открываем file-like объект с данными
sio = StringIO(buf)
z = ZipFile(sio, 'a')
z.writestr('test', 'test')
z.close()
# Сохраняем в строку (буфер)
buf = sio.getvalue()
print 'Size', len(buf)
# coding: utf8
from zipfile import ZipFile
zin = ZipFile('archive.zip', 'r')
zout = ZipFile('archive2.zip', 'w')
for item in zin.infolist():
buf = zin.read(item.filename)
if item.filename != 'test':
zout.writestr(item, buf)
zout.close()