В python я хочу создать подпроцесс и прочитать и записать данные в его stdio. Допустим, у меня есть следующая программа на C, которая просто записывает свой ввод в свой вывод.Как использовать трубы в python без блокировки?
#include <stdio.h>
int main() {
char c;
for(;;) {
scanf("%c", &c);
printf("%c", c);
}
}
В python я должен использовать это с помощью модуля подпроцесса. Что-то вроде этого:
from subprocess import *
pipe = Popen("thing", stdin=PIPE, stdout=PIPE)
pipe.stdin.write("blah blah blah")
text = pipe.stdout.read(4) # text should == "blah"
Однако в этом случае звонок для чтения блоков неограниченно. Как я могу сделать то, что я пытаюсь достичь?