我正在尝试使用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] #'
>>>
你们有没有人知道这里有什么问题?
答案 0 :(得分:0)
你应该这样写:
while not b.recv_ready():
time.sleep(0.1)
print b.recv(1000)
recv_ready()
函数检查数据是否准备就绪,但不等待数据准备就绪。