TypeError: la séquence de l'élément 0:: str exemple, les octets trouvé
for line in fo:
line = " ".join(line.split())
line = line.strip()
J'obtiens une erreur
line = ''.join(line.split())
TypeError: sequence item 0: expected str instance, bytes found
sa fonctionne bien en python 2.x, mais ne fonctionne pas sur 3.4
veuillez suggérer une bonne solution pour que
Ce qui est
Convertir les octets de str, pourrait aider.
fo = open("input.txt", "rb")
fo
ici?Convertir les octets de str, pourrait aider.
fo = open("input.txt", "rb")
OriginalL'auteur Muhammad Umer | 2015-08-18
Vous devez vous connecter pour publier un commentaire.
' '
est une chaîne qui vous êtes en appelant sesjoin
méthode avec une séquence d'octets. La documentation a déclaré, en python-3.x:Mais dans ce cas, car vous avez affaire avec l'octet objets que vous ne pouvez pas utiliser
str
méthodes connexes. Les octets de l'objet lui-même est livré avec unjoin()
méthode qui peut être utilisée de la même manière questr.join
. Vous pouvez également utiliserio.BytesIO
, ou vous pouvez le faire sur place concaténation avec unbytearray
objet. Comme la documentation est mentionné dans lesbytearray
objets mutables et efficace surutilisation mécanisme.De sorte que vous pouvez simplement ajouter un
b
préfixe de la chaîne vide pour en faire un octet objet:Aussi, si votre fichier est de contenir des chaînes vous pouvez tout simplement ouvrir votre fichier dans un
str
mode ('r'
)au lieu de byte ('rb'
).Noter que, malgré la séparation entre
str
etbyte
objets en python-3.x, en python-2.x vous n'avezstr
. Vous pouvez voir cela en vérifiant le type d'une chaîne deb
préfixe:Et c'est ce qui rend l'extrait suivant de travail:
OriginalL'auteur Kasrâmvd
Vous devriez être en ajoutant une ligne
lignes=str(lignes)
avant d'exécuter la commande pour éviter les erreurs .De cette façon, vous convertir à la chaîne de d'abord lui-même.
OriginalL'auteur user3126530
Si vous êtes venu ici à la recherche d'une solution à se joindre à une classe personnalisée implémenté en C/C++, la méthode la plus simple est d'ajouter une méthode de participation à la classe elle-même et de créer la liaison à python.
Par exemple, une classe qui peut avoir de liste ou de carte qui doit être joignable, un exemple de code dans pybind11 serait quelque chose comme ceci:
Puis en python, c'est une simple question de l'appel de la méthode join pour la classe
OriginalL'auteur Adnan Y