Во-первых, как указал Игнасио , вы должны определить точную последовательность символов, отправляемых F2. На моей машине это ^[OQ
, где ^[
обозначает escape-символ с кодом ASCII 27. Это идентично тому, что он получил. Вы должны отправить точную ту же последовательность байтов через telnet. Предполагая, что правильная последовательность - та, которую я показал выше, она сводится к следующему:
import telnetlib
tn = telnetlib.Telnet(HOST, PORT)
tn.write(idpass)
tn.write("\x1b0Q")
tn.close()
В случае, если вам интересно, \x1b
обозначает символ, имеющий код ASCII 27, так как 27 в шестнадцатеричном является 1b
.
Это работает на моей машине (проверено простым эхо-сервером на принимающей стороне), поэтому, если оно не работает для вас, это означает, что удаленный конец ожидает чего-то другого вместо нажатия клавиши F2.