\r插入child.b

2024-10-02 14:23:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用child.sendline()[preprovision\u olt-t responsm\u olt-H olt.Voltha]通过SSH将54个字符的命令发送到Voltha CLI服务器。svc:50060] 我希望能够匹配,这样我就把它从孩子身上删除。在下次之前 但是,我始终无法匹配,因为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()

Tags: cmdchildoutput字符expectlogfileprintolt
1条回答
网友
1楼 · 发布于 2024-10-02 14:23:30

看起来这是一个voltha的东西,只有preprovision\u olt命令是这样的,我将通过使用child收集损坏的sent命令来解决这个问题。在作为日志文件的第一行之前,我将简单地删除文件的第一行

相关问题 更多 >