pegando stdout em tempo real do subprocesso

eu querosubprocess.Popen() rsync.exe no Windows e imprima o stdout em Python.

Meu código funciona, mas não pega o progresso até que uma transferência de arquivos seja feita! Quero imprimir o progresso de cada arquivo em tempo real.

Usando o Python 3.1 agora, já ouvi que deveria ser melhor para lidar com IO.

import subprocess, time, os, sys

cmd = "rsync.exe -vaz -P source/ dest/"
p, line = True, 'start'


p = subprocess.Popen(cmd,
                     shell=True,
                     bufsize=64,
                     stdin=subprocess.PIPE,
                     stderr=subprocess.PIPE,
                     stdout=subprocess.PIPE)

for line in p.stdout:
    print(">>> " + str(line.rstrip()))
    p.stdout.flush()

questionAnswers(12)

yourAnswerToTheQuestion