Подпроцесс Popen с stdin и stdout --- всегда зависает - PullRequest
1 голос
/ 17 апреля 2019

Мне нужно связаться с процессом прошивки, запущенным из командной строки. К сожалению, в случае ошибки программа-прошивальщик ожидает клавишу «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, когда он заполняется, или в том, что пример кода может работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...