是否可以将stdout和stderr重定向到两个不同的文本文件中?我正在努力使用以下代码而没有得到我想要的东西。使用下面的代码,我只能在Output_Log.txt中看到退出状态(0):
-------SSH Connection opened and command sent to remote server-----
stdout_data = []
stderr_data = []
stdout_data = sys.stdout
stderr_data = sys.stderr
sys.stdout = open('Output_Log.txt','w')
sys.stderr = open('Error_Log.txt','w')
---------Main Code-------------
while True:
try:
if session.recv_ready():
stdout_data.append(session.recv(16384))
if session.recv_stderr_ready():
stderr_data.append(session.recv_stderr(16384))
if session.exit_status_ready():
break
----------Main code ends-------------------
except socket.timeout:
print("SSH channel timeout exceeded.")
break
except Exception:
traceback.print_exc()
break
print 'exit status: ', session.recv_exit_status()
print ''.join(stdout_data)
print ''.join(stderr_data)
答案 0 :(得分:0)
在你的python代码中,你应该能够在最后执行以下操作。
sys.stdout.write(stdout_data)
sys.stderr.write(stderr_data)
答案 1 :(得分:0)
我不了解sys.stdout或其他什么,但您是否尝试过移动一些代码?喜欢在最后写这些东西,或使用类似的东西:
f = open('Error_Log.txt','w')
f.write(stdout_data)
最好的猜测哈哈!
答案 2 :(得分:0)
您是否考虑过仅使用日志记录模块?