Tutorials  /  Python

Python io - BytesIO und StringIO

Ccentron Redaktion · Februar 2024 ·4 Min. Lesezeit ·Python, Tutorial

Das Python io Modul ermöglicht es uns, die Datei-bezogenen Ein- und Ausgabeoperationen zu verwalten. Der Vorteil der Verwendung des IO Moduls besteht darin, dass die verfügbaren Klassen und Funktionen es uns ermöglichen, die Funktionalität zu erweitern, um das Schreiben in Unicode-Daten zu ermöglichen.

Python IO Modul

Es gibt viele Möglichkeiten, wie wir das io Modul verwenden können, um Stream- und Buffer-Operationen in Python durchzuführen. Wir werden hier viele Beispiele zeigen, um den Punkt zu beweisen. Lassen Sie uns beginnen.

Python BytesIO

Genau wie bei Variablen können Daten als Bytes in einem im Speicher befindlichen Puffer gehalten werden, wenn wir die Byte IO-Operationen des io Moduls verwenden. Hier ist ein Beispielprogramm, um dies zu demonstrieren:

Python
import io
stream_str = io.BytesIO(b"JournalDev Python: \x00\x01")
print(stream_str.getvalue())

Lassen Sie uns das Output für dieses Programm sehen:

Code
sh-3.2$ python io_bytes.py
JournalDev Python:
sh-3.2$

Die Funktion getvalue() nimmt einfach den Wert aus dem Buffer als String.

Python StringIO

Wir können sogar StringIO verwenden, das in der Anwendung BytesIO sehr ähnlich ist. Hier ist ein Beispielprogramm:

Python
import io

data = io.StringIO()
data.write('JournalDev: ')
print('Python.', file=data)

print(data.getvalue())

data.close()

Lassen Sie uns das Output für dieses Programm sehen:

Python io string example

Beachten Sie, dass wir den Buffer sogar geschlossen haben, nachdem wir mit dem Buffer fertig sind. Dies hilft, Buffer-Speicher zu sparen, da sie Daten im Speicher speichern. Außerdem haben wir die print-Methode mit einem optionalen Argument verwendet, um einen IO Stream der Variable anzugeben, der perfekt mit einer Print-Anweisung kompatibel ist.

Lesen mit StringIO

Sobald wir einige Daten in den StringIO-Buffer geschrieben haben, können wir sie auch lesen. Sehen wir uns einen Code-Schnipsel an:

Python
import io

input = io.StringIO('This goes into the read buffer.')
print(input.read())

Lassen Sie uns das Output für dieses Programm sehen:

Python io string read example

Datei lesen mit StringIO

Es ist auch möglich, eine Datei zu lesen und sie über ein Netzwerk als Bytes zu streamen. Das io Modul kann verwendet werden, um eine Mediendatei wie ein Bild in Bytes umzuwandeln. Hier ist ein Beispielprogramm:

Python
import io

file = io.open("whale.png", "rb", buffering = 0)
print(file.read())

Lassen Sie uns das Output für dieses Programm sehen:

Python io media
VM

Passende Infrastruktur bei centron

Skripte und Dienste brauchen irgendwann eine Umgebung, die durchläuft: ccloud³ VMs ab 3,12 € im Monat, stundengenau abgerechnet. Cloud Server mieten →

io.open() vs os.open()

Die io.open() Funktion ist eine viel bevorzugte Methode, um I/O-Operationen durchzuführen, da sie als High-Level-Schnittstelle zur Durchführung von Datei-I/O erstellt wurde. Sie umhüllt den OS-Level-Dateideskriptor in einem Objekt, das wir verwenden können, um auf die Datei auf eine Python-typische Weise zuzugreifen. Die os.open() Funktion kümmert sich um den Low-Level-POSIX-Syscall. Sie nimmt POSIX-basierte Argumente entgegen und gibt einen Dateideskriptor zurück, der die geöffnete Datei repräsentiert. Sie gibt kein Dateiobjekt zurück; der zurückgegebene Wert hat keine read() oder write() Funktionen. Insgesamt ist die io.open() Funktion nur ein Wrapper über die os.open() Funktion. Die os.open() Funktion setzt auch Standardkonfigurationen wie Flags und Modi, während io.open() dies nicht tut und von den an sie übergebenen Werten abhängt.

Fazit

In dieser Lektion haben wir einfache Operationen des Python IO Moduls untersucht und wie wir auch Unicode-Charaktere mit BytesIO verwalten können.

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Python
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren