读取子进程的STDOUT

时间:2012-06-24 16:50:19

标签: python subprocess stdout

你好我想读取命令的输出,它给出了输出条,如下面的输出

10% |****                       | 3:56 ETA

我尝试使用以下代码

import subprocess
import sys
proc = subprocess.Popen("command", shell=True, stdout=subprocess.PIPE)
while True:
    line = proc.stdout.readline()
    if not line:
        break
    split = line.rstrip()
    print line
    print "\n"
print "Done"

此代码在完成进度条后将输出读取到100%,但我想在中间读取它。 任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:4)

您正在使用readline(),但进度条全部打印在一行上,因此readline()会一直等到进度条完全打印,就像发生换行时一样。尝试read(1)一次获取一个角色。