TypeError: Beim Schreiben in eine Datei in Python 3 ist ein Byte-ähnliches Objekt erforderlich, nicht „str“.
Dieser Fehler tritt auf, wenn Sie versuchen, eine Zeichenfolge mit der write()
Methode in Python 3 in eine Datei zu schreiben, die Datei jedoch im Binärmodus geöffnet wird (unter Verwendung des 'b'
Flags beim Öffnen der Datei). Um dies zu beheben, müssen Sie die Zeichenfolge in Bytes codieren, bevor Sie sie in die Datei schreiben.
# Example code that causes the error
f = open('file.txt', 'wb')
string = 'hello'
f.write(string)
f.close()
Um den Fehler zu beheben, können Sie die encode()
Methode verwenden, um den String in Bytes zu konvertieren, bevor Sie ihn in die Datei schreiben:
# Corrected code
f = open('file.txt', 'wb')
string = 'hello'
f.write(string.encode())
f.close()
Alternativ können Sie die Datei mit dem Flag im Textmodus 'w'
statt im Binärmodus mit dem 'wb'
Flag öffnen.
f = open('file.txt', 'w')
string = 'hello'
f.write(string)
f.close()
Auf diese Weise müssen Sie keine .encode()
Methode verwenden