Я пытаюсь написать сценарий Python для доступа к нескольким сетевым устройствам Cisco. К сожалению, устройства не настроены одинаково, у некоторых есть баннеры, которые появляются в странных местах. Эти баннеры могут иметь шаблоны, которые имеют некоторые из элементов, которые могут иметь подсказки.
Например, как только я вхожу в систему, я ожидаю приглашения 'hostname#'
, поэтому я в основном использую pexpect('#')
, мне, возможно, придется обрабатывать некоторые другие запросы, такие как 'hostname>'
, поэтому pexpect('>')
работает. У меня действительно есть список возможных подсказок, плюс тайм-аут, и я буду действовать соответственно.
Это нормально, если где-то посередине не появляется баннер. Например, после входа в систему может появиться баннер с надписью ## Welcome ##
и быть там прямо перед подсказкой. Я считаю, что если бы я мог сказать pexpect игнорировать регулярное выражение #.*\r
, я был бы в порядке, но я не уверен, что это возможно. Можно ли заставить pexpect игнорировать строку или есть лучший способ сделать это?