Получение вывода процесса во время выполнения

Я использую скрипт Python для запуска процесса с помощьюsubprocess.Popen и одновременно сохранить вывод в текстовом файле, а также распечатать его на консоли. Это мой код:

result = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
for line in result.stdout.readlines(): #read and store result in log file
    openfile.write("%s\n" %line)
    print("%s" %line)

Вышеприведенный код работает нормально, но он сначала завершает процесс и сохраняет результат врезультат переменная. После этогодля цикла сохраняет вывод, а также распечатывает его.

Но я хочу вывод во время выполнения (так как мой процесс может занять несколько часов, я неза все эти часы ничего не получилось).

Так есть ли какая-либо другая функция, которая дает мне вывод динамически (во время выполнения), значит, как только процесс выдаст первую строку, он должен быть напечатан.

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

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