Programlama konusunda çok yeniyim, bu yüzden soruma çok aptalca özür dilerim. Python 2.6 baskılar harfler a, b, c, d bu kodu işlem yapılmasıBu kod neden Python3.1'de Python2.6'dan farklı davranıyor?
#!/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)
, her çıktı hattı saniye sonra görülmektedir. Bu beklenen bir davranış. Ancak Python 3.1 uygulamasında satır output=p.stdout.readline()
numaralı satırda engellenir. Python 3.1 için bunu nasıl düzeltebilirim?
neyi yürütme engellendiğinde tam olur? Gösterebildiğin bir hata var mı? – Ben
hata değil, sadece giriş için istekte bulunur; Bu kod, –
numaralı terminal penceresinde gerçekleştirilmiştir. Bir tahminte, arabelleğe almada farklılıklar olabilir; yazdıktan sonra p.stdin.flush'a bir çağrı eklerseniz bir şey değişir mi? –