Я использую модуль подпроцесса для запуска подпроцесса и подключения к нему выходного потока (stdout). Я хочу, чтобы иметь возможность выполнять неблокирующие чтения на его stdout. Есть ли способ сделать .readline non-blocking или проверить, есть ли данные в потоке, прежде чем я вызову .readline
? Я бы хотел, чтобы это было портативным или, по крайней мере, работало под Windows и Linux.
вот как я это делаю сейчас (он блокирует .readline
, если нет данных):
p = subprocess.Popen('myprogram.exe', stdout = subprocess.PIPE)
output_str = p.stdout.readline()