GZIP Python в памяти для существующего файла ⇐ Python
-
Гость
GZIP Python в памяти для существующего файла
У меня есть ситуация, когда у меня есть существующий файл. Я хочу сжать этот файл с помощью gzip, получить кодировку этого файла в формате Base64 и использовать эту строку для последующих операций, включая отправку как часть данных в вызове API.
У меня есть следующий код, который работает нормально:
импортировать base64 импортировать gzip base64_string_to_use_later = Нет с open('C:\\test.json', 'rb') как orig_file: с gzip.open('C:\\test.json.gz', 'wb') как заархивированный_файл: zipped_file.writelines(оригинальный_файл) с gzip.open('C:\\test.json.gz', 'rb') как заархивированный_файл: base64_string_to_use_later = base64.b64encode(zipped_file.read()) Этот код возьмет существующий файл, создаст сжатую версию и запишет ее обратно в файловую систему. Второй блок берет сжатый файл, открывает его и получает версию в кодировке Base 64.
Есть ли способ сделать это более элегантным, сжимая файл в памяти и извлекая в память строку в кодировке Base64?
У меня есть ситуация, когда у меня есть существующий файл. Я хочу сжать этот файл с помощью gzip, получить кодировку этого файла в формате Base64 и использовать эту строку для последующих операций, включая отправку как часть данных в вызове API.
У меня есть следующий код, который работает нормально:
импортировать base64 импортировать gzip base64_string_to_use_later = Нет с open('C:\\test.json', 'rb') как orig_file: с gzip.open('C:\\test.json.gz', 'wb') как заархивированный_файл: zipped_file.writelines(оригинальный_файл) с gzip.open('C:\\test.json.gz', 'rb') как заархивированный_файл: base64_string_to_use_later = base64.b64encode(zipped_file.read()) Этот код возьмет существующий файл, создаст сжатую версию и запишет ее обратно в файловую систему. Второй блок берет сжатый файл, открывает его и получает версию в кодировке Base 64.
Есть ли способ сделать это более элегантным, сжимая файл в памяти и извлекая в память строку в кодировке Base64?