如何在python上返回stdout值?

时间:2017-08-18 08:22:21

标签: python paramiko

我制作了一些剧本。 我希望在python上返回stdout值。

但我的剧本不起作用。

下面是我的剧本。

import paramiko
import sys

from paramiko import AutoAddPolicy

sip = raw_input('IP\n')
sid = raw_input('ID\n')
spass = raw_input('PW')

client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(AutoAddPolicy())
client.connect(hostname=sip, username=sid, password=spass)

stdin, stdout, stderr = client.exec_command('hostname')
s_info = stdout
sys.stdout.close()

client.close()

print (s_info)

我的脚本发生在错误之下。

  

Traceback(最近一次调用最后一次):文件“test.py”,第17行,in          print(s_info)ValueError:关闭文件的I / O操作

1 个答案:

答案 0 :(得分:0)

正如错误所提到的那样,您已经在关闭它后尝试写入流。默认情况下,print function会重定向到标准输出,您已在此处关闭sys.stdout.close()

为了使其正常工作,只需评论或删除该行