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()

questionAnswers(26)

yourAnswerToTheQuestion