Форум сайта python.su
0
Добрый вечер, господа. Я новичок в Python'е в частности и в программировании вообще, поэтому прошу помочь, даже если мой вопрос будет глупым 
Используя телнет подключаюсь к железке, где необходимо в завимисимости от выводимой строки в дальнейшем подавать команды. Подобный код работать отказывается:
import telnetlib, sys host = '192.168.1.1' telnet (host) def telnet(h): print ('Enter User Name:') user = input() print ('Enter Password') password = input() tel=telnetlib.Telnet(h,23,2) tel.set_debuglevel(10) tel.read_until(b"Name\r\n>",2) write(user.encode('ascii')+b"\r\n") read_until(b"Password\r\n>",2) write(password.encode('ascii')+b"\r\n") after_logging=tel.read_eager() var1=str.encode('Condition 1') var2=str.encode('Condition 2') if after_logging.find(another_user_logged_in) is True: print('Something in first condition') tel.close elif after_logging.find(another_user_logged_in) is True: print('Something in second condition') tel.close else: print('Something wrong')
Офлайн
33
WondergЧто Python пишет ?
Подобный код работать отказывается:
Офлайн
0
Фактически он всегда выдаёт:
“Something wrong”
Когда реально, должно быть “Something in first condition”, к примеру. Т.е. цикл не срабатывает, не происходит поиска заданной строки в выводе, а как это верно реализовать пока понять не могу.
Офлайн
33
Wonderg
Когда реально, должно быть “Something in first condition”, к примеру.
Отредактировано Budulianin (Ноя. 19, 2013 22:53:22)
Офлайн
221
Wonderg
потому что вам нужно читать документацию,а не понимать команды по их названиям. Загляните в доки и увидите, что метод строки find() ищет в строке другую строку, и возвращает ее позицию. Естественно в вашем коде ничего работать не нужно потому чт овы не просто сравниваете с True, а еще используете оператор is, который проверяет на идентичность, а integer is True никогда не будет верным.
В вашем случае достаточно просто проверить появляется ли данная строка в другой:
if another_user_logged_in in after_logging:
Офлайн
0
Я предполагал, что в корне не прав, но не думал что на столько. Благодарю за помощь!
Офлайн