Доступ к большому файлу в zip-архиве с помощью HTML в веб-представлении python-webkit без извлечения

Я прошу прощения за путаницу в названии вопроса. Это довольно сложная ситуация с компонентами, которые являются новыми для меня, поэтому я не уверен, как описать это кратко.

У меня есть некоторые данные XML и изображение в архиве (в данном случае zip, но это может быть легко tar или tar.gz), и с помощью python, gtk и webkit поместите изображение в webkit.WebView вместе с некоторыми из другие данные. XML - это детская игра для доступа без извлечения файлов, но изображение является еще одной проблемой.

Я хотел бы избежать извлечения изображения на жесткий диск, прежде чем помещать его в WebView, а кодирование данных изображения в формате base64 выглядит громоздким, тем более что изображения могут потенциально достигать десятков мегабайт.

В основном я ищу способ создания URI для файла, хранящегося в файле контейнера.

Я спросил несколько дней назад в IRC и был направлен на виртуальные файловые системы. В поисках, которые я выполнил, я нашел несколько ссылок на создание vfs из zip-файла, но никаких примеров или даже большого количества документации по самим виртуальным файловым системам (gnomeVFS, gvfs, gio). Я могу искать во всех неправильные места, однако.

1 ответ

Решение

zipfile Модуль в стандартной библиотеке Python предоставляет инструменты для создания, чтения, записи, добавления и вывода списка файлов ZIP.

С помощью ZipFile.read(name[, pwd])(вернуть байты имени файла в архив), вы можете применить base64.b64encode(s[, altchars]) к содержанию. Обратите внимание, что в этом простом процессе разархивированные и закодированные версии сохраняются в памяти.

Другие вопросы по тегам