Verwenden Sie decode()
korrekt:entweder in zwei Schritten (wenn Sie blah
wiederverwenden möchten ):
blah = blah.decode()
splitblah = blah.split("\n")
# other code that uses blah
oder Inline (wenn Sie es für den einmaligen Gebrauch benötigen):
splitblah = blah.decode().split("\n")
Ihr Problem mit der Verwendung von decode()
war, dass Sie seinen Rückgabewert nicht verwendet haben. Beachten Sie, dass decode()
tut nicht das Objekt ändern (blah
), um es etwas zuzuweisen oder zu übergeben:
# WRONG!
blah.decode()
SIEHE AUCH:
decode
Dokumente.
Wenn Ihre Frage darauf hinausläuft:
Ich habe versucht, Decodierung und Codierung zu verwenden, aber es schreit mich immer noch an, dass die Split-Methode den Datentyp nicht verwenden kann.
Der vorliegende Fehler kann durch den folgenden Code demonstriert werden:
>>> blah = b'hello world' # the "bytes" produced by check_output
>>> blah.split('\n')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
Um bytes
aufzuteilen , ein bytes
Objekt muss ebenfalls angegeben werden. Die Lösung ist einfach:
>>> blah.split(b'\n')
[b'hello world']