2017-08-18 4 views
-1

私はいくつかのスクリプトを作った。 私はpythonの値にstdoutを返したい。どうすればstdoutをpythonの値に戻すことができますか?

しかし、私のスクリプトは機能しません。

以下は自分のスクリプトです。

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) 

エラーの下でスクリプトが発生しました。

答えて

0

エラーが示すように、ストリームを閉じた後でストリームに書き込もうとしています。 print functionは、デフォルトでは標準出力にリダイレクトし、すでに閉じたここsys.stdout.close()

それが動作するためには、ちょうど終了後に標準出力値を呼び出すことができますどのように

+0

その行をコメントまたは削除すること? – KJ9

関連する問題