[Python] Un errore col modulo telnetlib.

Riccardo Magliocchetti riccardo.magliocchetti a gmail.com
Mar 28 Nov 2017 14:45:20 CET


Il 28/11/2017 14:30, Gabriele Battaglia ha scritto:
> Buon pomeriggio.
> 
> Ho un errore in questo script. Con Python 2 andava tutto bene, il 3.6.2 invece, 
> si comporta in maniera diversa.
> Questo stralcio è la parte che si occupa di fare il login ad un server telnet.
> 
> ***
> 
> login:' Gabrybat
> test user Gabrybat <class 'str'>
> Traceback (most recent call last):
>    File "bici3.py", line 406, in <module>
>      user, password = Apri("Nuovo", "")
>    File "bici3.py", line 31, in Apri
>      tn.write(user+"\r\n") # tn = telnetlib.Telnet()
>    File 
> "C:\Users\GBattaglia\AppData\Local\Programs\Python\Python36-32\lib\telnetlib.py", line 
> 287, in write
>      if IAC in buffer:
> TypeError: 'in <string>' requires string as left operand, not bytes
> 
> C:\Dropbox\Py>
> 
> Tuttavia io ho passato una stringa, ne ho anche stampato la classe nella riga 
> "test user".

Credo che l'interprete python abbia più conoscenza del codice di quella che hai 
tu :)

> Qualcuno ha idea del perchè accada ciò?

La gestione del testo è cambiata completamente in python3: 
https://docs.python.org/3.0/whatsnew/3.0.html#text-vs-data-instead-of-unicode-vs-8-bit
http://www.diveintopython3.net/strings.html

-- 
Riccardo Magliocchetti
@rmistaken

http://menodizero.it


Maggiori informazioni sulla lista Python