Leitura sem bloqueio em um subprocesso.PIPE em python
Estou usando omódulo de subprocesso para iniciar um subprocesso e conectar-se ao seu fluxo de saída (stdout). Quero poder executar leituras sem bloqueio em seu stdout. Existe uma maneira de tornar o .readline sem bloqueio ou verificar se há dados no fluxo antes de eu chamar.readline
? Eu gostaria que isso fosse portátil ou, pelo menos, funcionasse no Windows e Linux.
aqui está como eu faço isso por enquanto (está bloqueando o.readline
se não houver dados disponíveis):
p = subprocess.Popen('myprogram.exe', stdout = subprocess.PIPE)
output_str = p.stdout.readline()