首页 > 解决方案 > Paramiko/SSH 如何在 Python 脚本执行时接收 print()?

问题描述

当 Python 脚本中的打印行提示时,我需要在特定时间与 Python 脚本进行交互。对于一个更简单的示例,我只是想在执行 python 脚本时获取 print() 的输出。目前我只能在它完成时得到它。

我的服务器端python_script.py是:

count = 0

while True:
    count += 1
    print(count)

客户端我有:

....
ssh.load_system_host_keys()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, port=22, username=user, password=passwd, look_for_keys=False, allow_agent=False)
command = "python C:\\users\\...\\desktop\\python_script.py "

(stdin, stdout, stderr) = ssh.exec_command(command)

while True:
    a = stdout.readlines()
    print(a)

结果只是客户端终端中的空白、无休止的执行。我想看到的是一个 Python 的连续数字数组(或任何东西)。

仅当我的脚本完成执行时,我才能获得标准输出,但这在我需要响应脚本时没有帮助。我对这个问题没有足够好的理解,或者如何让标准输出缓冲中间脚本,以解决这个问题。

标签: sshparamiko

解决方案


推荐阅读