5.1 Binärdaten
Die Arbeit mit Binärdateien in Python unterscheidet sich etwas von der Arbeit mit Textdateien, da Binärdateien Daten in einem Format enthalten, das nicht für Menschen lesbar ist. Anstelle von Strings arbeiten Binärdateien mit Bytes.
Um mit Binärdateien zu arbeiten, verwendet man die Funktion
open()
mit einem Modus, der den Buchstaben
'b'
enthält (zum Beispiel 'rb'
zum Lesen,
'wb'
zum Schreiben und so weiter).
Beispiele zum Öffnen von Binärdateien:
- Lesen:
'rb'
- Schreiben:
'wb'
- Hinzufügen:
'ab'
- Lesen und Schreiben:
'r+b'
,'w+b'
,'a+b'
Beispiel:
file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()
Die Variable 'content'
enthält ein Byte-Array.
Binärdaten (Bytes) sind die niedrigste, grundlegendste Ebene der Datenrepräsentation. Jegliche Daten können als Binärdaten gelesen werden.
Das bedeutet, dass eine Textdatei immer als Binärdatei gelesen werden kann, aber nicht jede Binärdatei kann als Text interpretiert werden.
5.2 Lesen von Binärdateien
Lesen des gesamten Datei-Inhalts
Die Methode read()
liest den gesamten Inhalt der Datei in Bytes ein.
Beispiel:
file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()
Lesen einer bestimmten Anzahl von Bytes
Die Methode read(n)
liest n
Bytes aus der Datei.
Beispiel:
file = open('example.bin', 'rb')
content = file.read(10) # Liest die ersten 10 Bytes
print(content)
file.close()
Zeilenweises Lesen
Die Methode readline()
liest eine Zeile aus der Datei. Bei Binärdateien
endet die Zeile mit dem neuen Zeilenzeichen (\n)
.
Beispiel:
file = open('example.bin', 'rb')
line = file.readline()
print(line)
file.close()
Lesen aller Zeilen
Die Methode readlines()
liest alle Zeilen aus der Datei und gibt sie als
Liste von Bytes zurück.
Beispiel:
file = open('example.bin', 'rb')
lines = file.readlines()
for line in lines:
print(line)
file.close()
Methoden zur Arbeit mit Strings funktionieren möglicherweise nicht korrekt, wenn du eine Datei liest, die keinen Text enthält: beispielsweise ein Archiv, ein Bild oder ein Video.
5.3 Schreiben von Binärdaten
Die Methode write()
schreibt Bytes in eine Datei. Die Daten
zum Schreiben müssen im Byte-Format (bytes)
vorliegen.
Lesen und Schreiben von Bildern
Ein Bild aus einer Datei lesen und in eine andere Datei schreiben.
# Bild lesen
with open('input_image.jpg', 'rb') as infile:
image_data = infile.read()
# Bild schreiben
with open('output_image.jpg', 'wb') as outfile:
outfile.write(image_data)
Es ist auch möglich, Textdaten zu schreiben:
Beispiel:
data = b"Hello, World!"
lines = [b"First line.\n", b"Second line.\n", b"Third line.\n"]
file = open('example.bin', 'wb')
file.write(data)
file.writelines(lines)
file.close()
GO TO FULL VERSION