python—通过ssh写入和读取未缓冲到文件的stdout

weylhg0b  于 2021-06-21  发布在  Pig
关注(0)|答案(1)|浏览(478)

我使用node来执行python脚本。python脚本ssh进入服务器,然后运行pig作业。我希望能够从pig作业中获取标准,并在浏览器中显示它。
我使用pexpect库来进行ssh调用,但是在pig调用完全完成之前(至少按照我编写的方式),它不会打印pig调用的输出。关于如何重组它有什么建议吗?

child.sendline(command)
child.expect(COMMAND_PROMPT)
print(child.before)

我知道我不应该期待命令提示符(因为它只会在进程结束时出现),但我不确定我应该期待什么。

2admgd59

2admgd591#

重复我的评论作为回答,因为它解决了问题:
如果你设置 child.logfile_read 一个可写的文件,如对象(例如。 sys.stdout ),pexpect将在读取时将输出转发到那里。

child.logfile_read = sys.stdout
child.sendline(command)
child.expect(COMMAND_PROMPT)

相关问题