2024-10-01 22:26:56 发布
网友
我有一个c可执行文件,它从物联网硬件获取数据,并使用printf在控制台上打印信息。我想从python运行这个可执行文件,我可以使用subprocess.call以下列方式
subprocess.call(["demoProgram", "poll"])
并将输出打印到控制台。但我需要使用python代码捕获这个输出(printf),以便进一步实时处理信息。如何使用子流程实时捕获此输出?在
如果您使用的是python2x
看看命令模块
import commands output=commands.getoutput("gcc demoProgram.c") #command to be executed print output
对于Python3x
使用子流程模块
下面将打开一个子进程并从输出创建迭代器。在
import subprocess import sys proc = subprocess.Popen(['ping','google.com'], stdout=subprocess.PIPE) for line in iter(proc.stdout.readline, ''): print(line) # process line-by-line
这个解决方案是从a similar question的答案修改而来的。在
如果您使用的是python2x
看看命令模块
对于Python3x
使用子流程模块
^{pr2}$下面将打开一个子进程并从输出创建迭代器。在
这个解决方案是从a similar question的答案修改而来的。在
相关问题 更多 >
编程相关推荐