如何从脚本读取终端打印输出以将其作为另一个变量?

时间:2019-04-03 16:02:32

标签: python-3.x subprocess

我正在尝试使用 python3 使两个单独的脚本通过一个终端进行通信。

我已经尝试过使用“ subprocess”类,但无法实现。我的问题是subprocess.getoutput()或call()函数始终运行被调用的脚本。

我希望像脚本2中的read()函数一样,将打印内容从脚本1移到脚本2中的变量。

更清晰:

  1. 脚本1启动脚本2
  2. 脚本2打印出某些结果,然后等待指令
  3. 脚本1读取终端输出以使用脚本2的结果
  4. 完成后,脚本1打印一个“信号”以要求脚本2重新运行

在我的情况下,脚本2是一个检测对象脚本,它将捕获图像并进行处理,然后将位置发送回将使用该图像的脚本1。

感谢您的帮助

编辑: 我找到了可以解决问题的pexpect模块,但是我在努力使用它,这是我尝试过的方法:

*Script 1:*
child = pexpect.spawn('./filename')
child.expect('Yes?')
child.send('Go')
print(child.after)

*Script 2:*
Message = input('Yes?')
print(Message)
do_something(Message)

我唯一得到的是“是吗?”的字样。字符串,而不是接收到的消息的打印(假定为“ Go”),而不是子项的打印。之后是do_something()的结果。

0 个答案:

没有答案