0
votes

forloop TypeError: impossible de concaténer la chaîne en octets

Je suis nouveau sur python3, j'essaye de convertir le code python 2.7 en python 3, et j'entre dans ce problème. Faites-moi savoir où je me trompe.

Traceback (most recent call last):
  File "./telnetlib_vlan_loop.py", line 30, in <module>
    tn.write(b"vlan " + str(n) + "\n")
TypeError: can't concat str to bytes**strong text**

Erreur:

for n in range (755,767):
    tn.write(b"vlan " + str(n) + "\n")
    tn.write(b"name Python_VLAN_" + str(n) + "\n")


0 commentaires

3 Réponses :


2
votes

États d'erreur: TypeError: can't concat str to bytes

Votre problème actuel est que vous avez des bytes et des str et que vous essayez de les ajouter ensemble. Vous devez utiliser le même type avant de le faire.

Vous ne fournissez pas si vous devez écrire sous forme de str ou d' bytes

Si les bytes changent votre code en:

for n in range (755,767): 
    tn.write("vlan {}\n".format(n)) 
    tn.write("name Python_VLAN_{}\n".format(n))

Si str supprime simplement l' encode

for n in range (755,767): 
    tn.write("vlan {}\n".format(n).encode()) 
    tn.write("name Python_VLAN_{}\n".format(n).encode())

Mise à jour: correction de l'orthographe du format


1 commentaires

Je pense que l'astuce était d'encoder l'int en octet. Merci pour l'aide



0
votes
for n in range(755,767):
    tn.write(b"vlan " + str(n).encode('ascii') + b"\n")
    tn.write(b"name Python_VLAN_" + str(n).encode('ascii') + b"\n")
this might do the trick...hope it helps

1 commentaires

Veuillez modifier votre réponse afin que le code apparaisse comme tel. De plus, publiez uniquement les réponses que vous avez testées. Un morceau de code «pourrait faire l'affaire» n'est pas une réponse. Si vous avez vérifié le code dans votre environnement, mais que vous ne savez pas si l'environnement de l'OP produira les mêmes résultats, nuancez votre réponse avec les détails de votre environnement.



1
votes

Je gère le même problème, et avec le code ci-dessus, corrige cela avec .enconde ('ascii') dans les deux


0 commentaires