2017-03-28 49 views
0

您好我是新来的蟒蛇,我想TELENET通过仅主机适配器连接我的主机:远程登录使用Python

我的命令是

import telnetlib 
import time 


def call_func(): 
    time1 = 2 
    connect = telnetlib.Telnet('192.168.1.100',23,3) 
    connect.write('show version'.encode('ascii')) 
    time.sleep(time1) 
    print (connect.read_very_eager().decode('ascii')) 
    connect.close() 


call_func() 

不过我不能读show version命令的完整输出。有人能解释为什么我不能这样做吗?

输出有: “R1>显示版本”

回答

0

你可以阅读有关telnetlib documentation所有read_方法,并比较它们的输出。它在那里指出,只有read_until()会给你文本“直到一个给定的字节串”。所有其他的将只返回“EOF之前的所有数据”,“I/O中没有阻塞的所有数据”,“容易获得的数据”。等等。

也就是说,你应该使用read_until()来确保你得到一个完整的字符串返回。这是等待telnet返回全文的唯一方法。

在类似的问题中可以找到更多解释here