Python создает zip-файл

Я использую следующий скрипт для создания ZIP-файлов:

import zipfile import os def zip_file_generator(filenames, size): # filenames = path to the files zip_subdir = "SubDirName" zip_filename = "SomeName.zip" # Open BytesIO to grab in-memory ZIP contents s = io.BytesIO() # The zip compressor zf = zipfile.ZipFile(s, "w") for fpath in filenames: # Calculate path for file in zip fdir, fname = os.path.split(fpath) zip_path = os.path.join(zip_subdir, fname) # Add file, at correct path zf.write(fpath, zip_path) # Must close zip for all contents to be written zf.close() # Grab ZIP file from in-memory, make response with correct MIME-type resp = HttpResponse(s.getvalue(), content_type = "application/x-zip-compressed") # ..and correct content-disposition resp['Content-Disposition'] = 'attachment; filename=%s' % zip_filename resp['Content-length'] = size return resp 

Я получил это отсюда .

Но я изменил s = StringIO.StringIO() на s = io.BytesIO() потому что я использую Python 3.x.

Zip-файл создается с нужным размером и т. Д. Но я не могу его открыть. Это неверно. Если я напишу zip-файл на диск, файл zip будет действителен.

Python - лучший язык программирования в мире.