Python 如何检查子流程是否正在轮询,但未接收数据
我使用Python 如何检查子流程是否正在轮询,但未接收数据,python,subprocess,polling,Python,Subprocess,Polling,我使用subprocess.popen命令扫描频率 我的程序接收数据,但是,我很难检测“消息的结尾” 因此,我正在寻找如何检查.poll()命令是否正在轮询,但未接收数据的代码 据我在谷歌发现的,当没有收到数据时,行应该是“”,只有一次,程序通过打印几行空行来响应。不幸的是,这只是一次,但是,这可能是我正在寻找的。也就是说,2或3个空行可能也表示没有要接收的数据 multimon_ng = subprocess.Popen("rtl_fm -f 169.65M -M fm -s 22050 -p
subprocess.popen
命令扫描频率
我的程序接收数据,但是,我很难检测“消息的结尾”
因此,我正在寻找如何检查.poll()
命令是否正在轮询,但未接收数据的代码
据我在谷歌发现的,当没有收到数据时,行应该是“”,只有一次,程序通过打印几行空行来响应。不幸的是,这只是一次,但是,这可能是我正在寻找的。也就是说,2或3个空行可能也表示没有要接收的数据
multimon_ng = subprocess.Popen("rtl_fm -f 169.65M -M fm -s 22050 -p 43 -g 30 | multimon-ng -a FLEX -t raw -",
stdout = subprocess.PIPE,
stderr = open('error.txt', 'a'),
shell = True)
while True:
multimon_ng.poll()
line = multimon_ng.stdout.readline()
print(line)
如何检查子进程是否正在轮询?如果进程仍在运行,
poll()
将返回None
。否则它将返回退出代码。()
但是,我不确定这是否会对您有所帮助:
- 如果要等待进程退出,只需调用
,而不是使用wait()
poll()
- 如果希望程序在其生命周期内保持运行并响应多条消息,则需要确切了解“消息结束”信号的外观,在循环中调用stdout.readline(),并在不退出该循环的情况下检测和处理该信号