小编Geo*_*Pop的帖子

为什么Python3.1中的代码行为与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)
Run Code Online (Sandbox Code Playgroud)

在Python 2.6中执行此代码会打印字母a,b,c,d,每行输出一秒钟后出现.这是预期的行为.但是在Python 3.1中,执行被阻止了output=p.stdout.readline().如何为Python 3.1更正此问题?

python stdin subprocess stdout popen

5
推荐指数
1
解决办法
558
查看次数

标签 统计

popen ×1

python ×1

stdin ×1

stdout ×1

subprocess ×1