5

私はプログラミングに非常に慣れていないので、質問がばかげている場合は事前にお詫び申し上げます。

#!/usr/bin/python2.6  
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)

Python 2.6 でこのコードを実行すると、文字 a、b、c、d が出力され、出力の各行が 1 秒後に表示されます。これは予期される動作です。しかし、Python 3.1 では、実行は行でブロックされますoutput=p.stdout.readline()。Python 3.1 でこれを修正するにはどうすればよいですか?

4

1 に答える 1