Последняя небуферизованная строка не может быть прочитана

Я пытаюсь прочитать последнюю строку из команды вроде «apt-get download firefox». Обычно вывод будет похож

Get:1 http://archive.ubuntu.com/ubuntu/ utopic/main firefox amd64 32.0+build1-0ubuntu2 [34.9 MB]
2% [1 firefox 646 kB/34.9 MB 2%]

с последней строкой, постоянно обновляемой (она не записывает новую строку, пока не достигнет 100%). Моя цель сейчас прочитать прогресс в реальном времени. Вот мой текущий пример кода:

#!/usr/bin/python3 -u
# coding=utf-8

import subprocess, sys

pipe = subprocess.Popen(['apt-get', 'download', 'firefox'], 0, stderr = subprocess.PIPE, stdout = subprocess.PIPE)
while True:
    content = pipe.stdout.read(1).decode()
    if content == '':
        break
    sys.stdout.write(content)
    sys.stdout.flush()
pipe.wait()

Я отключил буферизацию вывода для вызова подпроцесса, а также для двоичного вывода для процесса Python (с аргументом -u). Но я получаю только первую строчку, а не прогресс второй. Кто-нибудь знает, как мне этого добиться?

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

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