Извините, если это глупый quesiton, это моя первая попытка на python. Я написал сценарий, который считывает список интерфейсов из файла, записывается в cisco 7600, а затем вызывает функцию, которая вытягивает статус и run-config интерфейсов. Я запускаю 2 команды на каждом интерфейсе. Проблема заключается в управлении выводом pexpect. Некоторые интерфейсы делают именно то, что я ожидаю (не каламбур) и другие, он, похоже, не ждет какого-либо вывода, остальные же вывод из одной команды заканчивается после того, как два или три других интерфейса были проверено. Прямо сейчас у меня есть все, что выводится на sys.stdout. Как только я получу его работу, я напишу его в файл. Я пробовал использовать sendline вместо send, я играл с child.timeout, child.maxsize, time.sleep ... Я могу отправлять выходные данные по запросу. Я просто стараюсь, чтобы это не слишком долго. Код, который я имею проблемы с является:pexpect output не работает
def get_int_conf(child, if_file, dev_type, prompt):
open_file = "/home/" + if_file
if dev_type == 'cisco':
child.logfile = sys.stdout
with open(open_file, 'r') as int_list:
#
#Pull name from list
#
for int_name in int_list:
print "Interface name is %s" % (int_name)
#
#Build correct syntax
#
match1 = re.search("(Gi|Te)", int_name)
match2 = re.search("[0-9]+/[0-9]+", int_name)
if match1 and match2:
first_match = match1.group(1)
second_match = match2.group()
short_nm = first_match + second_match + " \n"
#
# Run show interface status commmand
#
child.send('sh interface status | in ' + short_nm)
child.expect(prompt)
child.send('\n')
#
# Run show run interface command
#
child.send('sh run interface ' + int_name)
child.expect(prompt)
child.send('\n')
return()