通过 Python subprocess.Popen(或 Paramiko 会话)和 运行 数量的 shell 命令(如 "top")打开 PuTTY window window

Open a PuTTY window via Python subprocess.Popen (or Paramiko session) and run number of shell commands (like "top") in the same window

我想打开一个 PuTTY window,登录到某个服务器,然后立即输入一些命令,最后保存输出。我想看到 PuTTY window 打开以及我正在通过程序执行的所有 activity(因此需要 PuTTY GUI)。

这是我尝试过的: 我可以打开一个新的 window 并登录。但是使用 stdin.write 我无法在同一个 window 中输入更多命令。我在这里做错了什么?我对 python 很陌生。请帮忙

import subprocess
from subprocess import Popen, PIPE, STDOUT

p = subprocess.Popen("putty.exe demo@Test.Rebex.Net -pw password", stdout=PIPE, stdin=PIPE, stderr=STDOUT)
p.stdin.write("ls".encode("utf-8"))
print(p.stdout.readlines())

我已经尝试过 Paramiko,但不想使用它,因为它无法 display/print 像 top.

这样的命令的输出

PuTTY 是一个 GUI 应用程序,它不使用标准输入。它不适用于自动化。对于自动化,您可以使用 Plink,它是相当于 PuTTY 的控制台。
另见


虽然你应该使用 Paramiko。它不会 无法 display/print 像“top” 这样的命令的输出。这不是它的目的。你必须将它连接到终端才能实现你想要的。参见 Running interactive commands in Paramiko

或者对于自动化,您最好 运行 top 非交互式。请参阅您的其他问题