2017-03-28 94 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