Mit Hilfe von Puffermodulen (StringIO, BytesIO, cStringIO) können wir String- oder Bytes-Daten wie eine Datei imitieren.
Bis Python 2.7 verwendeten wir cStringIO oder StringIO, während wir mit diesen Daten umgingen.
Jetzt, in Python 3.x, verwenden wir io.StringIO oder io.BytesIO aus dem io-Modul, da die Module StringIO, und cStringIO in Python 3.x nicht mehr verfügbar sind.
In Python 2.7 war das Modul StringIO in der Lage, sowohl Byte als auch Unicode zu verarbeiten. Aber in Python 3 müssen Sie separate BytesIO für die Verarbeitung von Byte-Strings und StringIO für die Verarbeitung von Unicode-Strings verwenden.
- io.StringIO benötigt einen Unicode-String.
- io.BytesIO benötigt einen Bytes-String.
- StringIO.StringIO erlaubt entweder einen Unicode- oder einen Bytes-String.
- cStringIO.StringIO benötigt einen String, der als Bytes-String kodiert ist.
Hier ist ein einfaches Beispiel, das das io-Modul verwendet
Hier werden bei jedem aufeinanderfolgenden Schreiben die Daten im Stream-Objekt angehängt, genau wie bei file
Diese Methoden von erfordern besondere Erwähnung:
getvalue()
Der gesamte Inhalt der Datei kann jederzeit abgerufen werden, bevor die close()-Methode des file-Objekts aufgerufen wird.
close()
Freigeben des Speicherpuffers und Arbeit mit dem Pufferobjekt erledigt.
seek()
Sie können seek verwenden, um den Cursor über die Daten zu bewegen, wie seek(0) für den Anfang der Datei