Ich habe einen Anwendungsfall, bei dem ich einen Blob aus der Datenbank zurückbekomme, den ich in eine Binärdatei konvertieren muss. Python speichert dies als String, obwohl es eigentlich Bytes sind. Wenn ich versuche, als binär zu schreiben, bekomme ich einen Type Error, str wird nicht akzeptiert.Datei aus Bytes erstellen, die als Zeichenfolge gespeichert werden
Ich schrieb einen Beispielcode, um zu reproduzieren, wie die Variable aussieht. Ich habe Beispielcode in anderen Sprachen gesehen, wo diese Aufgabe ziemlich einfach ist. Hilfe zur Lösung dieses Problems mit Python 3 würde sehr geschätzt werden. Es ist wahrscheinlich etwas sehr einfaches, dass ich vermisse und ich konnte keine Antwort online finden.
import binascii
f = open('test.xlsx', 'rb')
content = binascii.hexlify(f.read())
f.close
output = content.decode("utf-8")
#output2 = hex(int(output, 16))
f = open('temp', 'wb')
f.write(output) #TypeError: a bytes-like object is required, not 'str'
f.close()
#Convert back to type bytes and recreate the file
Versuchen Sie 'f.write (bytes (output, 'utf-8'))' – cdarke
Versuchen Sie, die Zeichenfolge in ein Byte-Array zu konvertieren, z. gg = bytearray (textstring, 'latin-1') und schreibe das aus. –
"binascii.hexlify" nicht die Daten aus der Eingabedatei. Nur 'lesen 'Sie es und schreiben Sie es. Die aus einer Datei im Binärmodus gelesenen Daten sind bereits ein bytesähnliches Objekt. 'hexlify' verwandelt es in eine utf-8-Zeichenfolge in Python 3. – martineau