Paramiko recv()在交互模式下工作,但在脚本内部不起作用

时间:2017-08-23 07:16:21

标签: python paramiko

我正在尝试使用python中的paramiko模块从其中一个开关读取横幅。这是我用于相同

的代码
import socket
import sys
import paramiko
import subprocess
a=paramiko.SSHClient()
a.set_missing_host_key_policy(paramiko.AutoAddPolicy())
a.connect('10.22.158.19',username='admin',password='airwave')
b=a.invoke_shell()
b.recv_ready()
b.recv(1000)

当我在上面运行时,我没有得到任何输出,但是当我在脚本中注释最后一行并且当我在shell b.recv(1000)中执行最后一个命令时给出实际输出

>>> 
>>> b.recv(1000)
'Last login: Tue Aug 22 23:10:25 2017 from 10.20.14.150\r\r\n(AirwaveMM-19) [mynode] #'
>>> 

你们有没有人知道这里有什么问题?

1 个答案:

答案 0 :(得分:0)

你应该这样写:

while not b.recv_ready():
    time.sleep(0.1)
print b.recv(1000)

recv_ready()函数检查数据是否准备就绪,但不等待数据准备就绪。