Как я могу использовать функцию сна в подпроцессе Python

1

executor.py

from time import sleep
if __name__ == "__main__"
for i in range(10):
    print(i)
    sleep(1)

starter.py

from subprocess import Popen, PIPE

if __name__ == "__main__"
    process = Popen(['python', 'executor.py'], stdout=PIPE, universal_newlines=True)
    while process.poll() is None:
        output = process.stdout.readline()
        print(output)
    process.wait()

в ракушке

python starter.py

после выполнения команды выполнить результат следующим образом: # после 10 секунд позже.... 0 1 2 3 4 5 6 7 8 9
Я хочу напечатать номер каждый из scecond, как я могу решить эту проблему?

Теги:
subprocess
sleep
stdout

1 ответ

0
Лучший ответ

Стандартный вывод буферизуется. Вы должны очистить буфер после каждой print:

from time import sleep
import sys
if __name__ == "__main__":
    for i in range(10):
        print(i)
        sys.stdout.flush()
        sleep(1)
  • 1
    большое спасибо
  • 0
    Рад помочь. Можете ли вы пометить этот ответ как принятый, если сочтете его правильным?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню