我正在python中编写一个脚本,其中有一个arduino向我发送数据。我必须从脚本中打开记事本,并在记事本中写入通过串行COM收集的数据。
打开记事本我正在使用子进程模块
import subprocess as sp
sp.Popen(('notepad.exe').split(),shell=True).communicate()
串行数据停止,直到我关闭记事本窗口,然后显示所有串行数据。有没有办法在打开记事本窗口后得到串行数据..?
我正在使用python 2.7
答案 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")