2017-03-24 3 views
2

私は、iotハードウェアからデータを取得し、printfを使用してコンソール上に情報を出力するc実行可能ファイルを持っています。私は道subprocess.callを使用して実行可能なprint文の出力をリアルタイムで読み取る

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

、コンソールに出力を印刷する次にsubprocess.callを使用してそうすることができる午前たのpythonからこの実行ファイルを実行したいです。しかし、私はリアルタイムでさらに情報を処理するために私のpythonコードを使ってこの出力(printf)をキャプチャする必要があります。サブプロセスを使用してこの出力をリアルタイムでキャプチャするにはどうすればよいですか?

+0

提案された回答のいずれかが問題を解決した場合は、同意してください。あなた自身でこの問題を解決した場合は、回答を提供して受け入れられた解決策としてマークすることができれば役に立ちます。それでも問題が解決しない場合は、質問を詳細に更新してください。 –

答えて

1

subprocessモジュールを使用python3x

ためのコマンドモジュール

import commands 

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

を見て出力からイテレーターを作成します。

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 

この解決策は、similar questionへの回答から変更されました。

-1

あなたはpythonの2倍

を使用している場合は、次のように開きます

​​
+0

リアルタイム出力ではうまくいかないと思います。私のCプログラムは常に実行中で、コンソールに印刷しています。 – prattom

関連する問題