Хорошо, поэтому я пытаюсь запустить программу на C с помощью python script. В настоящее время я использую программу тестирования C:
#include <stdio.h>
int main() {
while (1) {
printf("2000\n");
sleep(1);
}
return 0;
}
Для имитации программы, которую я буду использовать, которая постоянно считывает показания с датчика.
Затем я пытаюсь прочитать вывод (в данном случае "2000"
) из программы C с подпроцессом в python:
#!usr/bin/python
import subprocess
process = subprocess.Popen("./main", stdout=subprocess.PIPE)
while True:
for line in iter(process.stdout.readline, ''):
print line,
но это не работает. Из использования операторов печати он запускает строку .Popen
, а затем ждет for line in iter(process.stdout.readline, ''):
, пока не нажму Ctrl-C.
Почему это? Это именно то, что большинство примеров, которые я видел, имеют в качестве своего кода, и все же он не читает файл.
Edit:
Есть ли способ заставить его работать только тогда, когда есть что-то, что нужно прочитать?