使用subprocess.call读取c可执行打印语句realtim的输出

2024-10-01 22:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个c可执行文件,它从物联网硬件获取数据,并使用printf在控制台上打印信息。我想从python运行这个可执行文件,我可以使用subprocess.call以下列方式

subprocess.call(["demoProgram", "poll"])

并将输出打印到控制台。但我需要使用python代码捕获这个输出(printf),以便进一步实时处理信息。如何使用子流程实时捕获此输出?在


Tags: 代码信息可执行文件硬件方式流程callsubprocess
2条回答

如果您使用的是python2x

看看命令模块

import commands

output=commands.getoutput("gcc demoProgram.c") #command to be executed
print output

对于Python3x

使用子流程模块

^{pr2}$

下面将打开一个子进程并从输出创建迭代器。在

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的答案修改而来的。在

相关问题 更多 >

    热门问题