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")
3 Réponses :
É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
Je pense que l'astuce était d'encoder l'int en octet. Merci pour l'aide
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
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.
Je gère le même problème, et avec le code ci-dessus, corrige cela avec .enconde ('ascii') dans les deux