【发布时间】:2019-09-03 04:59:22
【问题描述】:
我使用 Paramiko Python 包通过 SSH 运行命令。我可以将输出输出到 stdout,但是如何正确地将 stdout、stderr 和 stdin 重定向到 sys ?
下面的代码只会在标准输出上显示“stdout1”和“stdout2”。我如何正确获得“stderr”?最好还支持标准输入?
import paramiko
ssh = paramiko.SSHClient()
ssh.load_system_host_keys()
ssh.connect("localhost")
stdin, stdout, stderr = ssh.exec_command("echo stdout1 >&1; echo stderr >&2; echo stdout2 >&1")
ch = stdout.channel
while True:
bs = ch.recv(1)
if not bs:
break
print(bs.decode("utf-8"), end="")
【问题讨论】: