在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"
但是在這種情況下,無限期地讀取塊的調用。 我該如何做我想達到的目標?