So lesen Sie Binärdateien in Python

How Read Binary Files Python



Die Datei, die die Binärdaten enthält, wird als Binärdatei bezeichnet. Alle formatierten oder unformatierten Binärdaten werden in einer Binärdatei gespeichert, und diese Datei ist nicht lesbar und wird direkt vom Computer verwendet. Wenn eine Binärdatei zum Lesen oder Übertragen von einem Speicherort an einen anderen Speicherort erforderlich ist, wird der Inhalt der Datei in ein für Menschen lesbares Format konvertiert oder codiert. Die Erweiterung der Binärdatei ist .bin. Der Inhalt der Binärdatei kann mithilfe einer integrierten Funktion oder eines integrierten Moduls gelesen werden. In diesem Tutorial wurden verschiedene Möglichkeiten zum Lesen von Binärdateien in Python gezeigt.

Voraussetzung:

Bevor Sie sich die Beispiele dieses Tutorials ansehen, ist es besser, eine oder mehrere Binärdateien für die Verwendung im Beispielskript zu erstellen. Das Skript von zwei Python-Dateien hat unten angegeben, um zwei Binärdateien zu erstellen. Die binary1.py erstellt eine Binärdatei namens string.bin die Zeichenfolgendaten enthält, und binary2.py erstellt eine Binärdatei namens number_list.bin die eine Liste mit numerischen Daten enthält.







Binary1.py

# Öffnen Sie einen Dateihandler, um eine Binärdatei zu erstellen

file_handler= offen('string.bin', 'wb')

# Fügen Sie der Binärdatei zwei Textzeilen hinzu

file_handler.schreiben(B'Willkommen bei LinuxHint. Lernen Sie Python-Programmierung.')

# Schließen Sie den Dateihandler

file_handler.nah dran()

Binary2.py

# Öffnen Sie einen Dateihandler, um eine Binärdatei zu erstellen

Datei=offen('nummer_liste.bin','wb')

# Deklarieren Sie eine Liste mit numerischen Werten

Zahlen=[10,30,Vier fünf,60,70,85,99]

# Konvertieren Sie die Liste in ein Array

barray=bytearray(Zahlen)

# Array in die Datei schreiben

Datei.schreiben(barray)

Datei.nah dran()

Beispiel-1: Lesen Sie die Binärdatei der String-Daten in das Byte-Array

In Python gibt es viele Möglichkeiten, die Binärdatei zu lesen. Sie können die jeweilige Anzahl von Bytes oder den gesamten Inhalt der Binärdatei gleichzeitig lesen. Erstellen Sie eine Python-Datei mit dem folgenden Skript. Die open()-Funktion hat verwendet, um die zu öffnen string.bin zum Lesen. Die read() Funktion wurde verwendet, um in jeder Iteration von while-Schleife und print 7 Zeichen aus der Datei zu lesen. Als nächstes die read() Funktion wurde ohne Argument verwendet, um den vollständigen Inhalt der Binärdatei zu lesen, die später gedruckt wird.



# Öffnen Sie die Binärdatei zum Lesen

file_handler= offen('string.bin', 'rb')

# Lesen Sie die ersten drei Bytes aus der Binärdatei

data_byte=file_handler.lesen(7)

drucken('Drei Zeichen in jeder Iteration drucken:')

# Iteriere die Schleife, um den verbleibenden Teil der Datei zu lesen

währendDatenbyte:

drucken(data_byte)

data_byte=file_handler.lesen(7)


# Lesen Sie die gesamte Datei als einzelne Byte-Zeichenfolge

mit offen('string.bin', 'rb') wiefh:

Inhalt=fh.lesen()

drucken('Den vollständigen Inhalt der Binärdatei drucken:')

drucken(Inhalt)

Ausgabe:

Die folgende Ausgabe wird erscheinen, nachdem das obige Skript ausgeführt wurde.







Beispiel-2: Lesen Sie die Binärdatei mit String-Daten in das Array

Erstellen Sie eine Python-Datei mit dem folgenden Skript, um eine Binärdatei namens . zu lesen number_list.bin zuvor erstellt. Diese Binärdatei enthält eine Liste numerischer Daten. Wie im vorherigen Beispiel ist die open()-Funktion hat die Binärdatei zum Einlesen des Skripts geöffnet. Als nächstes werden die ersten 5 Zahlen aus der Binärdatei gelesen und vor dem Drucken in eine Liste umgewandelt.

# Öffnen Sie die Binärdatei zum Lesen

Datei = offen('nummer_liste.bin', 'rb')

# Lies die ersten fünf Zahlen in eine Liste ein

Nummer= aufführen(Datei.lesen(5))

# Liste ausdrucken

drucken(Nummer)

# Datei schließen

Datei.nah dran()

Ausgabe:

Die folgende Ausgabe wird erscheinen, nachdem das obige Skript ausgeführt wurde. Die Binärdatei enthält 7 Zahlen, und die ersten fünf Zahlen wurden in der Ausgabe gedruckt.



Beispiel-3: Binärdatei mit NumPy lesen

Die Möglichkeiten zum Erstellen der Binärdatei mit dem NumPy-Array und lesen Sie den Inhalt der Binärdatei mit in eine Liste ein, indem Sie die NumPy-Modul in diesem Teil des Tutorials gezeigt haben. Bevor Sie das unten angegebene Skript überprüfen, müssen Sie die NumPy-Modul indem Sie den Befehl vom Terminal aus ausführen oder die NumPy-Paket im Python-Editor, wo das Skript ausgeführt wird. Die tofile()-Funktion wird verwendet, um eine Text- oder Binärdatei zu erstellen, und die fromfile()-Funktion wird verwendet, um ein Array durch Lesen einer Text- oder Binärdatei zu erstellen.

Syntax von tofile():

ndarray.einordnen(Datei,September='',Format='%S')

Das erste Argument ist obligatorisch und nimmt den Dateinamen oder die Zeichenfolge oder den Pfad als Wert an. Die Datei wird erstellt, wenn in diesem Argument ein Dateiname angegeben wird. Das zweite Argument ist optional und wird verwendet, um die Array-Elemente zu trennen. Das dritte Argument ist ebenfalls optional und wird zum Formatieren der Ausgabe der Textdatei verwendet.

Syntax von formfile():

nuffig.aus Datei(Datei,dtyp=schweben,zählen=-1,September='',Versatz=0,*,mögen=Keiner)

Das erste Argument ist obligatorisch und nimmt den Dateinamen oder die Zeichenfolge oder den Pfad als Wert an. Der Inhalt der Datei wird gelesen, wenn in diesem Argument ein Dateiname angegeben wird. Die dtyp definiert den Datentyp des zurückgegebenen Arrays. Die Anzahl wird verwendet, um die Anzahl der Elemente zu zählen. Der Zweck der September besteht darin, die Text- oder Array-Elemente zu trennen. Der Offset wird verwendet, um die aktuelle Position der Datei zu definieren. Das letzte Argument wird verwendet, um ein Array-Objekt zu erstellen, das nicht a NumPy-Array .

Erstellen Sie eine Python-Datei mit dem folgenden Skript, um eine Binärdatei mit zu erstellen NumPy-Array und lesen und drucken Sie den Inhalt der Binärdatei.

# NumPy-Modul importieren

importierennumpywiez.B

# numpy-Array deklarieren

nparray=z.B.Array([3. 4, 89, 30, Vier fünf, 90, elf])

# Binärdatei aus numpy-Array erstellen

nparray.einordnen('liste.bin')

# Daten aus der Binärdatei drucken

drucken(z.B.aus Datei('liste.bin',dtyp=z.B.int64))

Ausgabe:

Die folgende Ausgabe wird erscheinen, nachdem das obige Skript ausgeführt wurde.

Abschluss:

In diesem Tutorial wurden drei verschiedene Möglichkeiten zum Lesen der Binärdatei anhand einfacher Beispiele gezeigt. Das erste Beispiel hat den Inhalt der Binärdatei als Byte-Array zurückgegeben. Das zweite Beispiel hat den Inhalt der Binärdatei als Liste zurückgegeben. Das letzte Beispiel hat auch den Inhalt der Binärdatei als Liste zurückgegeben.