Python schreiben String von Bytes zu Datei

Wie schreibe ich eine Reihe von Bytes in eine Datei, im Byte-Modus, mit Python?

Ich habe:

['0x28', '0x0', '0x0', '0x0'] 

Wie schreibe ich 0x28, 0x0, 0x0, 0x0 in eine Datei? Ich weiß nicht, wie man diese Zeichenfolge in ein gültiges Byte umwandelt und es schreibt.

2 Solutions collect form web for “Python schreiben String von Bytes zu Datei”

Karte zu einem bytearray() oder bytes() Objekt, dann schreibe das in die Datei:

 with open(outputfilename, 'wb') as output: output.write(bytearray(int(i, 16) for i in yoursequence)) 

Eine weitere Möglichkeit besteht darin, die Funktion binascii.unhexlify() zu verwenden, um Ihre Hex-Strings in einen bytes Wert zu verwandeln:

 from binascii import unhexlify with open(outputfilename, 'wb') as output: output.write(unhexlify(''.join(format(i[2:], '>02s') for i in b))) 

Hier müssen wir zuerst den 0x Teil abschneiden, dann den Wert neu formatieren, um ihn mit Nullen zu platzieren und das Ganze in einen String zu integrieren.

In Python 3.X wird byte bytes() eine Integer-Sequenz in eine Bytes-Sequenz umwandeln:

 >>> bytes([1,65,2,255]) b'\x01A\x02\xff' 

Ein Generatorausdruck kann verwendet werden, um Ihre Sequenz in Ganzzahlen umzuwandeln (beachten Sie, dass int(x,0) einen String in eine Ganzzahl nach seinem Präfix umwandelt. 0x wählt hex):

 >>> list(int(x,0) for x in ['0x28','0x0','0x0','0x0']) [40, 0, 0, 0] 

Kombinieren sie:

 >>> bytes(int(x,0) for x in ['0x28','0x0','0x0','0x0']) b'(\x00\x00\x00' 

Und schreibt sie aus:

 >>> L = ['0x28','0x0','0x0','0x0'] >>> with open('out.dat','wb') as f: ... f.write(bytes(int(x,0) for x in L)) ... 4 
  • Wie man Komma in Python-String streift
  • Wie man Schwimmer von einer txt zu einer Python-Liste als Strings nimmt
  • Python-Regex-Match-ODER-Operator
  • Umwickeln einer Textdatei, so dass jede Zeile maximal 80 Zeichen enthält
  • Eine exakte Übereinstimmung für String finden
  • Entfernen von Escaped Entities aus einer String in Python
  • Auf der Suche nach einer Möglichkeit, Python-Variablen in einem Skript zu identifizieren und zu ersetzen
  • Python Wie kann ich erste und letzte doppelte Anführungszeichen ausstrecken
  • Python3 konvertieren Unicode String in int Darstellung
  • Entfernen von doppelten Strings aus einer Liste in Python
  • Python - Konvertieren Sie negative Dezimalstellen von String zu float
  • Python ist die beste Programmiersprache der Welt.