\ r вставлен в child.before - PullRequest
       8

\ r вставлен в child.before

0 голосов
/ 24 октября 2018

У меня есть команда из 54 символов, отправляемая по SSH на CLI-сервер Voltha с использованием child.sendline () [preprovision_olt -t ponsim_olt -H olt.voltha.svc: 50060] Я ожидаю, что смогу сопоставить ее так, чтобыЯ удаляю его из child.before в следующий раз. Однако я никогда не смогу найти совпадения, потому что в выходе child.before () в конце вставлен символ '\ r', который усекает вывод. Это то, что выводит child.before() выглядит так:

60reprovision_olt -t ponsim_olt -H olt.voltha.svc:500

После 500 вставляется символ '\ r', в результате чего следующие два символа перезаписывают первые два символа

Почему это так?

Это код, который у меня есть:

def send_command_to_voltha_cli(logDir, cmd, logFile):
vcliIp = extractIpAddr('vcli')
print (vcliIp)
print (cmd)
output = open(logDir + '/' + logFile, 'w')
child = pexpect.spawn('ssh -p 5022 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no voltha@' + vcliIp)
child.expect('[pP]assword:')
child.sendline('admin')
child.expect('\([0-9]mvoltha.*[0-9]m\) ')
bytes = child.sendline(cmd)
print (bytes)
child.expect_exact(cmd)
child.expect('\([0-9]mvoltha.*[0-9]m\) ')
response = child.before
print (response)
output.write(child.before)

output.close()
child.close()

1 Ответ

0 голосов
/ 25 октября 2018

Похоже, что это вещь вольта. Только команда preprovision_olt ведет себя так. Я просто обойду это, собрав команду искалеченной отправки с использованием child.before в качестве первой строки в файле журнала, я просто удалюпервая строка файла

...