Utilisez decode()
correctement :soit en deux étapes (si vous souhaitez réutiliser blah
):
blah = blah.decode()
splitblah = blah.split("\n")
# other code that uses blah
ou en ligne (si vous en avez besoin pour un usage unique) :
splitblah = blah.decode().split("\n")
Votre problème avec l'utilisation de decode()
c'est que vous n'avez pas utilisé sa valeur de retour. Notez que decode()
n'est pas changer l'objet (blah
) pour l'assigner ou le transmettre à quelque chose :
# WRONG!
blah.decode()
VOIR AUSSI :
decode
docs.
Si votre question se résume à ceci :
J'ai essayé d'utiliser decode et encode mais il me crie toujours que la méthode split ne peut pas utiliser le type de données.
L'erreur en question peut être démontrée par le code suivant :
>>> 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'
Afin de diviser bytes
, un bytes
objet doit également être fourni. Le correctif est simplement :
>>> blah.split(b'\n')
[b'hello world']