Во время выполнения процесса я хотел бы прочитать его стандартный вывод и записать его в файл. Любая моя попытка, однако, не удалась, потому что независимо от того, что я пробовал, как только я пытался читать с stdout, он блокировался до завершения процесса.
Вот фрагмент того, что я пытаюсь сделать. (Первая часть - это просто скрипт на python, который что-то пишет в стандартный вывод.)
import subprocess
p = subprocess.Popen('python -c \'\
from time import sleep\n\
for i in range(3):\n\
sleep(1)\n\
print "Hello", i\
\'', shell = True, stdout = subprocess.PIPE)
while p.poll() == None:
#read the stdout continuously
pass
print "Done"
Я знаю, что существует множество вопросов, посвященных одной и той же теме. Однако ни один из найденных мной не смог ответить на мой вопрос.