Usa decode()
correttamente:in due passaggi (se vuoi riutilizzare blah
):
blah = blah.decode()
splitblah = blah.split("\n")
# other code that uses blah
o in linea (se ne hai bisogno per uso singolo):
splitblah = blah.decode().split("\n")
Il tuo problema con l'utilizzo di decode()
era che non hai usato il suo valore di ritorno. Nota che decode()
non cambia l'oggetto (blah
) per assegnarlo o passarlo a qualcosa:
# WRONG!
blah.decode()
VEDI ANCHE:
decode
documenti.
Se la tua domanda si riduce a questo:
Ho provato a utilizzare la decodifica e la codifica, ma mi dice ancora che il metodo split non può utilizzare il tipo di dati.
L'errore in questione può essere dimostrato dal seguente codice:
>>> 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'
Per dividere bytes
, un bytes
oggetto deve essere fornito. La soluzione è semplicemente:
>>> blah.split(b'\n')
[b'hello world']