Как запустить системную команду и получить непрерывный вывод в Jupyter Notebook? - PullRequest
0 голосов
/ 02 июля 2019

Если бы я запустил системную команду в Jupyter Notebook, я бы ожидал, что сообщения журнала моего консольного приложения будут отображаться «немедленно» в записной книжке.Тем не менее, кажется, что они происходят только после завершения всего процесса.

Я пытался

!D:/long_running_executable_with_log_messages.exe

и

import os
os.system('D:/long_running_executable_with_log_messages.exe')

=> Как непрерывно получать выходные данные системной команды?

Вопрос по теме:

Запуск интерактивного кода командной строки из записной книжки Jupyter

1 Ответ

0 голосов
/ 10 июля 2019
from subprocess import Popen, PIPE, CalledProcessError

with Popen(cmd, stdout=PIPE, bufsize=1, universal_newlines=True) as p:
    for line in p.stdout:
        print(line, end='') # process line here

if p.returncode != 0:
    raise CalledProcessError(p.returncode, p.args)

Найдено в Постоянно печатать выходные данные подпроцесса во время работы процесса

...