Мне нужно связаться с процессом прошивки, запущенным из командной строки.
К сожалению, в случае ошибки программа-прошивальщик ожидает клавишу «Enter».
Я установил Python 3.7.2 и использую subprocess
с PyCharm. Я могу запустить процесс с popen
, но stdout
кажется пустым даже с bufsize = 0
или 1
и даже с командой сброса: p.stdout.flush():
вот код:
import subprocess
proc = subprocess.Popen(stringCall, stdout=subprocess.PIPE, stdin=subprocess.PIPE, bufsize=0, universal_newlines=True)
time.sleep(2)
proc.stdout.flush()
...... с этим программа зависает навсегда:
for line in proc.stdout:
print(line)
Я нашел много примеров этой проблемы, но ни один из них не работает для меня. Возможно, это для Python 2.x, а я использую 3.7.2 ...
Я ожидал некоторой реакции в контейнере proc.stdout
, когда он заполняется, или в том, что пример кода может работать.