[英]How to import mailbox module from python2.5 if I also have installed python2.6 and python3.1 on my machine?
[英]Why does this code behave differently in Python3.1 than in Python2.6?
我對編程很陌生,所以如果我的問題太傻,我會事先道歉。
#!/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,每行輸出一秒鍾后出現。 這是預期的行為。 但是在Python 3.1中,在line output=p.stdout.readline()
處阻止了執行。 如何為Python 3.1更正此問題?
似乎是緩沖的差異。 添加p.stdin.flush()
調用解決了這個問題。 (見上面的評論)。
社區維基因為這個答案我沒有得到任何學分,但有些答案需要被標記為已被接受。
[@Geo Pop:請“接受”這個問題,因為它顯然是正確的。]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.