ловить стандартный вывод в реальном времени из подпроцесса

я бы хотелsubprocess.Popen() rsync.exe в Windows и распечатайте стандартный вывод в Python.

Мой код работает, но это не такне поймать прогресс, пока передача файла не будет завершена! Я хочу напечатать прогресс для каждого файла в режиме реального времени.

Использование Python 3.1 теперь, так как я слышал, что лучше работать с 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()

Ответы на вопрос(12)

Ваш ответ на вопрос