Heim  >  Artikel  >  Backend-Entwicklung  >  Notizen zur Python-Studie – StringIO und BytesIO

Notizen zur Python-Studie – StringIO und BytesIO

高洛峰
高洛峰Original
2017-02-17 11:50:341568Durchsuche

Worüber wir zuvor gesprochen haben, war das Lesen und Schreiben echter Dateien. Tatsächlich können wir eine Datei im Speicher auch zum Lesen und Schreiben virtualisieren. Die offiziellen Module, die uns Python zur Verfügung stellt, sind io.StringIO und io.BytesIO.

io.StringIO

String IO wird zum Lesen und Schreiben von Zeichenfolgen im Speicher verwendet. StringIO kann durch Übergabe eines Zeichens initialisiert werden. Zum Beispiel:

string = StringIO("This is Demo")

Zum Beispiel:

from io import StringIO

s = StringIO()
s.write("Yes\nYEs")
s.seek(0)
# 将指针拨回到开始位置,否则将会读取不到任何东西

content = s.read()
print content

StringIO erstellt ein dateiähnliches Objekt, das über alle Methoden von File Object verfügt. StringIO verfügt außerdem über zwei spezielle Methoden, nämlich die Methode getvalue() und die Methode close().

  • getvalue()-Methode wird verwendet, um den in StringIO geschriebenen Inhalt abzurufen.

  • close()-Methode schließt StringIO und gibt Speicher frei.

io.BytesIO

StringIO kann nur Daten vom Typ String verarbeiten, und BytesIO kann zur Verarbeitung von Daten vom Binärtyp verwendet werden. Die Verwendung von BytesIO ähnelt StringIO

StringIO.StringIO

Bei der Suche nach Dokumenten habe ich festgestellt, dass es unter StringIO auch ein StringIO gibt und die beiden sehr ähnlich sind. Habe alles gegoogelt. Es gibt eine Antwort auf Stackoverflow:

Ein In-Memory-Stream für Unicode-Text. Er erbt TextIOWrapper.

Dieses Modul implementiert eine dateiähnliche Klasse, StringIO, die einen String-Puffer liest und schreibt (auch bekannt als Speicherdateien).io.StringIO ist eine Klasse, die die bevorzugte Python-3-Bibliotheksstruktur widerspiegelt 2 Bibliotheksstruktur.

Was sollte bevorzugt werden? Gehen Sie immer auf die neue Bibliotheksorganisation zu. io.open sollte verwendet werden, um das integrierte Unicode-unfähige Öffnen zu ersetzen.

Vorwärts. Gehen Sie voran.

Die allgemeine Idee ist, dass StringIO das Erbe von Python2 ist und in Zukunft durch io.StringIO ersetzt wird. Es wird empfohlen, io.StringIO zu verwenden.


Weitere Hinweise zum Python-Lernen – Artikel zu StringIO und BytesIO finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn