GNU/Linux >> Tutoriales Linux >  >> Linux

No se puede dividir, se requiere un objeto similar a bytes, no 'str'

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']

Linux
  1. ¿Por qué no puedo dividir un archivo .ape?

  2. No se puede instalar la impresora HP:¿La instalación del complemento no se realizó correctamente?

  3. Error de Linux al cargar bibliotecas compartidas:no se puede abrir el archivo de objeto compartido:no existe tal archivo o directorio

  4. Error en la ejecución:no se encontró la versión `Qt_5' requerida por

  5. libpulse.so.0:no se puede abrir el archivo de objeto compartido:no existe tal archivo o directorio

¿No se puede agregar el usuario de error de Ppa o el equipo no existe?

libstdc++.so.5:no se puede abrir el archivo de objeto compartido, pero la biblioteca está instalada y actualizada

libaio.so.1:no se puede abrir el archivo de objeto compartido

La compilación Gcc no puede calcular el sufijo de los archivos de objetos:no se puede compilar

ERROR:ld.so:el objeto LD_PRELOAD no se puede precargar:ignorado

mount.nfs:rpc.statd no se está ejecutando pero es necesario para el bloqueo remoto