【发布时间】:2017-06-14 00:22:17
【问题描述】:
我正在尝试在我的服务器上处理来自我的相机的图像,并在我的本地计算机上实时处理后获取信息。我可以在我的服务器上获取必要的信息作为终端输出,但是在我的服务器程序运行之前,我不能将此信息放在本地机器上的 python 代码中。我试过这段代码:
cmd="sshpass -p 'pass' ssh -Y user@ip -t 'process_image; bash -l'"
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, bufsize=1)
for line in iter(p.stdout.readline, b''):
print(line)
p.stdout.close()
p.wait()
但它不起作用 - 看起来这段代码只是暂停了我的程序。我试图将输出写入文件而不是从本地机器读取文件,但这会扭曲我的数据。如何实时读取服务器的终端输出?
【问题讨论】:
-
尝试
now = p.communicate()[0].splitlines()然后for line in now: ..... -
或者只是:
for line in p.stdout: ...这可能会更好。
标签: python ubuntu terminal subprocess