打开记事本窗口时,串行数据停止

时间:2015-04-11 11:06:20

标签: python serial-port subprocess

我正在python中编写一个脚本,其中有一个arduino向我发送数据。我必须从脚本中打开记事本,并在记事本中写入通过串行COM收集的数据。

打开记事本我正在使用子进程模块

import subprocess as sp

sp.Popen(('notepad.exe').split(),shell=True).communicate()

串行数据停止,直到我关闭记事本窗口,然后显示所有串行数据。有没有办法在打开记事本窗口后得到串行数据..?

我正在使用python 2.7

1 个答案:

答案 0 :(得分:1)

只使用Popen而不使用任何communicate();无论如何,你无法在任何地方输送标准流。

所以:

sp.Popen(['notepad.exe'])

您可以将流程对象存储到变量中,并在其上调用.poll()以查看它是否已完成;它将在完成之前返回None

proc = sp.Popen(['notepad.exe'])
...
if proc.poll() is not None:
    print("Notepad completed")
else:
    print("Notepad is still running")