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 
  • Warum werden leere Strings in Split () Ergebnisse zurückgegeben?
  • Ausgabe mit 'StringVar' im Python-Programm
  • Variablenname in String umwandeln?
  • Verwenden von regex, um Kommentare aus Quelldateien zu entfernen
  • Wie kann ich Schlüsselwörter aus einem Python-Format-String extrahieren?
  • Rreplace - Wie erstelle ich das letzte Vorkommen eines Ausdrucks in einem String?
  • Ziemlich schreiben und drucken String-Elemente eines numpy ndarray (Python)
  • Python gespiegelte String-Funktion
  • Umkehrung einer Zeichenfolge ohne umgekehrt () oder [:: - 1]?
  • Datei mit String als Name importieren [duplizieren]
  • Wie suche und erstelle ich utf-8 Sonderzeichen in Python?
  • Python ist die beste Programmiersprache der Welt.