Мне нужно создать сжатую версию 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-файл читается с диска. Мне не нужно хранить эти файлы, поэтому я предпочел бы просто обработать их в памяти и покончить с этим. Я также могу использовать временные файлы, но лучшее решение, кажется, просто обрабатывать все в памяти. Как я могу заставить первое решение возвращать тот же объект, что и второе решение?