create zip file stream all in-memory
import io
from zipfile import ZipFile
def create_zip_inmemory(structs):
with io.BytesIO() as buffer:
with ZipFile(buffer, 'w') as zf:
for filename, content in structs:
zf.writestr(filename, content)
buffer.seek(0)
return buffer.read()
if __name__ == '__main__':
import sys
data = create_zip_inmemory([
('a.txt', 'hello'),
('b.txt', 'world'),
])
try:
open(sys.argv[1], 'wb').write(data)
except IndexError:
print('Usage: {0} <out-file>'.format(sys.argv[0]))