Доступ к распакованному файлу в памяти с помощью codecs.open () - PullRequest
1 голос
/ 23 января 2011

Я пытаюсь открыть в памяти распакованные файлы с помощью codecs.open(). Я понял, как распаковать файл в памяти, но я не знаю, как создать объект файла и открыть его с помощью codecs. Я экспериментировал с различными ZipFile свойствами, но не повезло.

Итак, вот как я открыл zip в памяти:

import zipfile, io

f = 'somezipfile.zip'
memory_object = io.BytesIO(f.read()) 
zip_in_memory = zipfile.ZipFile(memory_object)

1 Ответ

2 голосов
/ 23 января 2011

Вам не нужно codecs.open() для доступа к данным в памяти - он предназначен для загрузки файлов с диска. Вы можете извлечь содержимое файла из вашего объекта zipfile, используя метод extract(), и декодировать полученную строку, используя decode(). Если вы настаиваете на использовании модуля codecs, вы также можете получить файлоподобный объект с помощью zip_in_memory.open(...) и обернуть возвращаемый объект codecs.EncodedFile.

...