2009-08-07 13 views
1

Ich entschuldige mich für jede Verwirrung aus dem Titel der Frage. Es ist eine komplexe Situation mit Komponenten, die neu für mich sind, so dass ich mir nicht sicher bin, wie ich es kurz beschreiben soll.Zugriff auf eine große Datei in einem Zip-Archiv mit HTML in einem Python-Webkit WebView ohne Extrahieren

Ich habe einige XML-Daten und ein Bild in einem Archiv (zip in diesem Fall, könnte aber leicht tar oder tar.gz sein) und mit Python, GTK und Webkit, platzieren Sie das Bild in einem webkit.WebView, entlang mit einigen der anderen Daten. Das xml ist ein Kinderspiel, auf das man zugreifen kann, ohne die Dateien zu extrahieren, aber das Bild ist ein anderes Problem.

Ich möchte vermeiden, das Bild auf der Festplatte zu extrahieren, bevor Sie es in das WebView und macht eine Base64-Codierung der Bilddaten fühlen cludgy, vor allem da die Bilder potenziell Dutzende Megabyte erreichen können.

Grundsätzlich suche ich nach einer Möglichkeit, einen URI zu einer Datei in einer Containerdatei zu erstellen.

Ich fragte vor ein paar Tagen in IRC und war auf virtuelle Dateisysteme gerichtet. In den Durchsuchungen, die ich durchgeführt habe, habe ich ein paar Referenzen zum Erstellen eines vfs aus einer Zip-Datei gefunden, aber keine Beispiele oder gar Dokumentation über virtuelle Dateisysteme selbst (gnomeVFS, gvfs, gio.) Falsche Orte jedoch.

Antwort

1

Das Modul zipfile in der Python-Standardbibliothek bietet Tools zum Erstellen, Lesen, Schreiben, Anhängen und Auflisten einer ZIP-Datei.

Mit ZipFile.read(name[, pwd]) (geben Sie die Bytes des Dateinamens im Archiv zurück), können Sie base64.b64encode(s[, altchars]) auf den Inhalt anwenden. Beachten Sie, dass in diesem unkomplizierten Prozess die entpackten Versionen und im Speicher abgelegt sind.

+0

Danke, aber die Base64-Codierung ist etwas, was ich vermeiden wollte. –