![](/img/trans.png)
[英]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.