Um Binärdateien zu lesen oder zu schreiben, müssen Sie zunächst die verschiedenen Dateimodi von Binärdateien in Python verstehen -
Modus | Beschreibung |
---|---|
rb | Öffnen Sie eine Datei im schreibgeschützten Binärformat. Der Dateizeiger befindet sich am Anfang der Datei. Dies ist der Standardmodus. |
rb+ | Öffnen Sie eine Datei im Binärformat zum Lesen und Schreiben. Der Dateizeiger wird am Anfang der Datei platziert. |
wb | Öffnen Sie nur Dateien, die im Binärformat geschrieben sind. Überschreibt die Datei, falls vorhanden. Wenn die Datei nicht existiert, wird eine neue Datei zum Schreiben erstellt. |
wb+ | Öffnen Sie eine Datei im Binärformat zum Schreiben und Lesen. Wenn die Datei vorhanden ist, wird die vorhandene Datei überschrieben. Wenn die Datei nicht vorhanden ist, wird eine neue Datei zum Lesen und Schreiben erstellt. |
ab | Öffnen Sie eine Datei zum Anhängen im Binärformat. Wenn die Datei vorhanden ist, befindet sich der Dateizeiger am Ende der Datei. Das heißt, die Datei befindet sich im Anhängemodus. Wenn die Datei nicht existiert, wird eine neue Datei zum Schreiben erstellt. |
ab+ | Öffnen Sie Dateien zum Anhängen und Lesen im Binärformat. Wenn die Datei vorhanden ist, befindet sich der Dateizeiger am Ende der Datei. Die Datei wird im Anhängemodus geöffnet. Wenn die Datei nicht existiert, wird eine neue Datei zum Lesen und Schreiben erstellt. |
Angenommen, wir haben eine Binärdatei. Wir können es mit der Methode read() lesen. Zuerst öffnen wir die Binärdatei im rb-Modus der open()-Methode. Wir haben die folgenden Quelldateien im Laufwerk D: -
Sehen wir uns den vollständigen Code an
# Open a binary file f = open('D:\PythonLogo.png', 'rb') # Read lines data = f.read() # Display the data print(data)
Die Binärdatei ist nicht lesbar und der Inhalt wird nicht erkannt. Die tatsächliche Leistung ist größer. Nachfolgend zeigen wir nur einen Teil davon.
b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x04\xb0\x00\x00\x04\xb0\x08\x06\x00\x00\x00 \xeb!\xb3\xcf\x00\x00\x00\x04gAMA\x00\x00\xb1\x8f\x0b\xfca\x05\x00\x00\x00 cHRM\x00\x00z&\x00\x00\x80\x84\x00\x00\xfa\x00\x00\x00\x80\xe8\x00\x00u0\x00\x00\xea`\x0 0\x00:\x98\x00\x00\x17p\x9c\xbaQ<\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x 93\x00\x00\x00\x07tIME\x07\xe1\x08\n\x07\x16\x07\xc9\xb2\xff\xd3\x00\x00\x80\x00IDATx\xda\ xec\x9dw\xbc]e\x95\xf7\x7f\xcf>\xe7\xa6\x91@\xe8\xc5\x02\xa2\x88\x14q0B\x12\xc0\x99\x00!\x 88(\x02\x9a\x8c\x85"\xea\x80b\xc5\x02\xa1\xf8z\xa78\x8aJ\x13EeF\x1d\xdb\x94\x80@\x08\xea\x a0\x8c\xe0\x0c\x98\x10`\x94\x92\xd0D@,#\x88\xd4\x90r\xef\xd9\xeb\xfd#\x01\x02i\xe7\x9e\xb3 \xcb\xf3\xac\xfd\xfd~>\xef; . . . \xcdn\xd2d\xb1Q\xdf\xfa\xe9\x8d|\x8f\x14\x00\x00\x00\xb4\t\x02\x0b\x00\x00\x00\xe0Q\x98\xa 9\xd0\xd5\xc7\x1c$Izp\xee>\x9a\xd8\xfa\x98\x1d\xffdr\x7f\x153\x8f\xfa\xf8\xa3\xcdQJ\x07\xec\x e5\xc8\xf5X\x95\x96\x1eu\n\xdb\xac\xa4- {\xf9{\xdbe\xf6\xc0#\xfe\xa7\t\xdd\xaf\xed\x9a\xd9\xd1\xf5\xe4\x83\xdawf\xc7w>m\xdb\xbc5- X\xff \xb3\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd02\xff?\xca\x9f\x86X\x17m\x83=\ x00\x00\x00%tEXtdate:create\x002017-08- 10T07:22:07+00:00u\xea\xe6c\x00\x00\x00%tEXtdate:modify\x002017-08- 10T07:22:07+00:00\x04\xb7^\xdf\x00\x00\x00\x00IEND\xaeB`\x82'
wb-Modus der open()-Methode wird verwendet, um die Datei im Schreibformat zu öffnen.
Achtung – Die Binärdatei ist nicht lesbar und der Inhalt wird nicht erkannt
Schauen wir uns das vollständige Beispiel an. Hier wird die Datei im E-Laufwerk mit dem Namen
gespeichertMyDemoBinary.bin -
# Open a file in binary format for writing f = open("E:\MyDemoBinary.bin","wb") # Elements to be added to the binary file a = [100, 200, 300] # Convert the integer elements to a bytearray myArr = bytearray(a) # The byte representation ius now written to the file f.write(myArr) f.close()
Nachdem die Datei ausgeführt wurde, wird sie im festgelegten Pfad angezeigt, d. h. im Laufwerk E –
Das obige ist der detaillierte Inhalt vonWie lese (oder schreibe) ich Binärdaten in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!