Создание zip-файла в памяти, который совпадает с записанным ZIP-файлом - PullRequest
0 голосов
/ 23 октября 2019

Мне нужно создать сжатую версию XML-файла и отправить ее куда-нибудь. Я использую следующие строки кода для его создания:

buffer = BytesIO()
zipfile.ZipFile(buffer, mode='w').writestr(xml['Report Name'] + '.xml', xml['XML'])
bytes = buffer.getvalue()

Здесь xml - это просто словарь, содержащий файл XML в виде строки и его имени.

Это создает объект байта, которыйкак-то имеет неправильный формат для моих нужд. То, что мне нужно, это кусок кода:

buffer = BytesIO()
zipfile.ZipFile(buffer, mode='w').write(xml['Report Name'] + '.xml')
bytes = buffer.getvalue()

Здесь XML-файл читается с диска. Мне не нужно хранить эти файлы, поэтому я предпочел бы просто обработать их в памяти и покончить с этим. Я также могу использовать временные файлы, но лучшее решение, кажется, просто обрабатывать все в памяти. Как я могу заставить первое решение возвращать тот же объект, что и второе решение?

...