GNU/Linux >> Linux Esercitazione >  >> Linux

Impossibile dividere, è richiesto un oggetto simile a byte, non 'str'

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

Linux
  1. Perché non posso dividere un file .ape?

  2. Impossibile installare la stampante HP:installazione del plug-in non riuscita?

  3. Non è possibile aggiungere l'utente o il team di errore Ppa non esiste?

  4. libstdc++.so.5:impossibile aprire il file oggetto condiviso, ma la libreria è installata e aggiornata

  5. La compilazione Gcc non può calcolare il suffisso dei file oggetto:impossibile compilare

libaio.so.1:impossibile aprire il file oggetto condiviso

libpulse.so.0:impossibile aprire il file oggetto condiviso:file o directory non presenti

ImportError:libtk8.6.so:impossibile aprire il file oggetto condiviso:file o directory non presenti

ERRORE:ld.so:l'oggetto 'libgtk3-nocsd.so.0' da LD_PRELOAD non può essere precaricato

bash:ulimit:dimensioni file core:impossibile modificare limit:operazione non consentita

mount.nfs:rpc.statd non è in esecuzione ma è necessario per il blocco remoto