我需要执行Test_Pipe.py的输出,我在Linux上尝试了以下代码,但没有用。
Test_Pipe.py
import time
while True :
print"Someting ..."
time.sleep(.1)
来电者
import subprocess as subp
import time
proc = subp.Popen(["python","Test_Pipe.py"], stdout=subp.PIPE, stdin=subp.PIPE)
while True :
data = proc.stdout.readline() #block / wait
print data
time.sleep(.1)
proc.stdout.readline()行被阻止,因此没有数据打印出来。
重复:stackoverflow.com/search?q=%5Bpython%5D+subprocess+output,stackoverflow.com/questions/803265/,stackoverflow.com/questions/1277866/
您显然可以使用subprocess.communicate,但我认为您正在寻找实时输入和输出。
readline被阻止,因为该过程可能正在等待您的输入。您可以逐个字符地阅读以克服此问题,如下所示:
import subprocess
import sys
process = subprocess.Popen(