为什么 pexpect 会跳过 telnet 会话输出中的几个换行符?

问题描述 投票:0回答:0

我正在使用 pexpect 运行 telnet 来连接到一些网络设备,这些设备的控制台端口连接到终端服务器。我这样做是为了自动化一些初步的设备升级命令。

我可以成功运行 show 命令并在大多数情况下使用 pexpect 获取控制台输出,但出于某种原因,“child.before”变量中的几行不包括我实际运行该节目时出现的换行符设备上的命令,包括我使用“child.interact()”执行此操作时。

例如,当我使用 pexpect 在路由器上发出“show running-configuration”时,整个配置存储在“child.before”变量中,但是配置的几行组合成一行,没有任何换行符。这种情况发生了两次,而且不在同一个地方。

当我通过“child.interact()”运行相同的“show running-configuration”命令时,输出将这些配置行显示在不同的行上,就像它们应该的那样。

b 字符串没有显示除预期的 " 之外的任何缺失字符 “在这些配置线之间,也没有在它们的位置显示任何东西。任何可能发生的事情的想法都会导致无法收集这些信息” “对于那几行输出?

试过:

child.sendline('show run')
child.expect('CLLI#')  # device prompt after command is completed
print(child.before)

预期:

b'bunch of stuff that looks right\r\ndevice command x\r\n device command y\r\nmore stuff that looks right\r\n'

我得到的:

b'bunch of stuff that looks right\r\ndevice command x  device command y\r\nmore stuff that looks right\r\n'
python telnet cisco pexpect
© www.soinside.com 2019 - 2024. All rights reserved.