I am very new to programming, so I apologize in advance if my question is too stupid.
import subprocess, time
p=subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
for i in 'abcd':
p.stdin.write(str.encode(i+'\n'))
output=p.stdout.readline()
print(output)
time.sleep(1)
Running this code in Python 2.6 prints the letters a, b, c, d, each line of output appears after a second. This is the expected behavior. But in Python 3.1, execution is blocked by line output=p.stdout.readline(). How to fix this for Python 3.1?
source
share