Usa decode()
correctamente:ya sea en dos pasos (si desea reutilizar blah
):
blah = blah.decode()
splitblah = blah.split("\n")
# other code that uses blah
o en línea (si lo necesita para un solo uso):
splitblah = blah.decode().split("\n")
Tu problema con el uso de decode()
fue que no usó su valor de retorno. Tenga en cuenta que decode()
no cambiar el objeto (blah
) para asignarlo o pasarlo a algo:
# WRONG!
blah.decode()
VER TAMBIÉN:
decode
documentos.
Si su pregunta se reduce a esto:
Intenté usar decodificación y codificación, pero aún me grita que el método de división no puede usar el tipo de datos.
El error en cuestión se puede demostrar con el siguiente código:
>>> 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'
Para dividir bytes
, un bytes
También se debe proporcionar el objeto. La solución es simplemente:
>>> blah.split(b'\n')
[b'hello world']