python telnetlib expect_Python的telnetlib“read_until()”没有收到预期的字符串

本文介绍了一个Python新手尝试使用telnetlib库自动化路由器会话的过程。作者希望实现连接到指定主机,执行命令并打印输出的目标,但在使用read_until方法时遇到了问题。

python的新手,但我试图自动打开一个telnet会话(使用内置的“telnetlib”库)到路由器,执行一个简单的命令(“spc”),打印输出到本地控制台,然后离开 .

#!/usr/bin/python

import sys

import telnetlib

HOST="54.18.5.0"

PORT=55555

tn=telnetlib.Telnet(HOST, PORT)

tn.read_until("Escape character is \'^]\'.")

tn.write("\u001d")

tn.read_until("telnet>")

tn.write("mode char" + "\n")

tn.write("spc\n")

print tn.read_all()

我的问题似乎在于“read_until”函数 . 当我运行上面的脚本时,它将挂起,直到键盘中断,此时我收到以下消息:

CTraceback (most recent call last):

File "./telnetMR.py", line 11, in

tn.read_until("Escape character is \'^]\'.")

File "/usr/lib64/python2.7/telnetlib.py", line 294, in read_until

return self._read_until_with_poll(match, timeout)

File "/usr/lib64/python2.7/telnetlib.py", line 318, in _read_until_with_poll

else 1000 * call_timeout)

我假设“read_until()”没有收到任何东西,因此等到超时,但我不明白为什么 .

(我使用“expect”编写了这个相同的脚本,它运行得很好但是我想看看我是否可以在python中使用它来提高效率...所以关于发送八进制字符串的任何评论都很受欢迎但是这不是什么问题是) .

谢谢 .

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值