没有stdout.readlines()给出的输出

时间:2016-05-24 12:45:13

标签: python-3.x stdout paramiko

这是一个简单的代码,可以登录到linux框中,并对框中的资源执行grep。我只需要能够查看我执行的命令的输出,但不返回任何内容。代码不会报告任何错误,但不会写入所需的输出。

以下是代码:

import socket
import re
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('linux_box', port=22, username='abc', password='xyz')
stdin, stdout, stderr = ssh.exec_command('grep xyz *.set')
output2 = stdout.readlines()
type(output2)

这是我得到的输出:

C:\ Python34 \ python.exe C:/Python34/Paramiko.py

处理完成,退出代码为0

1 个答案:

答案 0 :(得分:0)

您实际上从未将任何内容打印到标准输出。

将最后一行更改为print(output2)应正确打印值。

您的代码可能基于交互式Python shell实验,其中隐式地将上次执行的命令的返回值打印到标准输出。在非交互模式下,不会发生此类行为。这就是你需要明确使用print函数的原因。