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

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

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

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

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

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


person Erik Youngren    schedule 07.08.2009    source источник


Ответы (1)


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

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

person gimel    schedule 07.08.2009
comment
Спасибо, но я пытался избежать кодировки base64. - person Erik Youngren; 07.08.2009