Frage

Frage:

Wie erhalte ich einen Byte-Strom, der wie StringIO für Python 2.5?

funktioniert

Anwendung:

Ich bin ein PDF zu Text konvertieren, aber nicht will, um eine Datei auf die Festplatte speichern.

Andere Gedanken:

Ich dachte, ich StringIO verwenden könnte, aber es gibt keinen Modus-Parameter (I guess "String" text-Modus impliziert).

Anscheinend ist die io.BytesIO Klasse neu in v2.6, so dass nicht entweder für mich arbeiten.

Ich habe eine Lösung mit dem tempfile Modul bekam, aber ich möchte vermeiden jeder liest / schreibt an / von der Festplatte.

War es hilfreich?

Lösung

In Python 2.x "string" bedeutet "Bytes" und "Unicode" bedeutet "string". Sie sollten den StringIO oder cStringIO Module verwenden. Der Modus wird davon abhängen, welche Art von Daten, die Sie als Puffer Parameter übergeben in.

Andere Tipps

Wenn Sie mit PDF arbeiten, dann sollte StringIO so lange in Ordnung, wie Sie Rücksicht auf die docs zahlen:

  

Das StringIO Objekt kann entweder Unicode oder 8-Bit-Strings, akzeptieren aber die beiden Misch kann eine gewisse Sorgfalt. Wenn beide verwendet werden, 8-Bit-Strings, die nicht als 7-Bit-ASCII interpretiert werden können (die den 8. Bit verwenden) bewirkt, dass ein UnicodeError angehoben werden, wenn getvalue () aufgerufen wird.

Hinweis: Dies ist nicht gilt für cStringIO:

  

Im Gegensatz zu den Speicherdateien vom Modul StringIO implementiert, die von diesem Modul zur Verfügung gestellt sind nicht in der Lage Unicode-Strings zu akzeptieren, die nicht als reine ASCII-Zeichenfolge codiert werden kann.

Die gesamte Dokumentation an:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top