Я застрял с проблемой. Я использую библиотеку telnetlib в Python для подключения к системе, которая выводит системные ошибки. Система довольно старая и работает, устанавливая соединение и выдавая сигнал тревоги для любой проблемы.
Он начинается с вывода всех текущих аварийных сигналов при подключении. Затем он сохраняет соединение открытым и отправляет сообщение поддержания активности или сигнал тревоги.
Сигналы тревоги, которые отправляются, отправляются назад, разделенные нулевым символом. Я пытаюсь либо взять все данные, выведенные telnet, и передать их через функцию, но когда я пытаюсь использовать Telnet.read_all()
, он просто сохраняет соединение открытым и не запускает остальную часть кода, пока не истечет время ожидания.
Или я пытаюсь заставить telnetlib читать по одной строке за раз и выполнять функцию, обрабатывающую по одной строке за раз, но когда я пытаюсь использовать Telnet.read_until(expected[, timeout])
, он либо возвращает b''
, либо делает то же самое, что и Telnet.read_all()
и ждет до истечения времени ожидания.
Кто-нибудь знает, как я могу заставить его либо видеть нулевой байт, затем циклически проходить каждую инструкцию, либо извлекать блок данных из телнета, а затем использовать str.replace
для его удаления?