Por que meu script Python3 se esquiva de direcionar sua saída para a cabeça ou cauda (módulo sys)?

Eu tenho um script Python3 que grava sua saída para stdout, mas ele reclama quando canaliza essa saída para a cabeça ou cauda. Observe na amostra abaixo que funciona, nesse casohead está retornando as duas primeiras linhas de saída conforme solicitado.

> ./script.py '../Testdata/*indels.ss' -m 5 | head -2                                                                                              ~/Databases/Avian_genomes/Sandbox/combined
xread
2999 50
Traceback (most recent call last):
  File "./new.py", line 194, in <module>
    sys.stdout.write(lineout)
IOError: [Errno 32] Broken pipe
Exception IOError: IOError(32, 'Broken pipe') in <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'> ignored

Em contraste, o script não tem nenhum problema com sua saída sendo canalizada para awk como abaixo.

> ./script.py '../Testdata/*indels.ss' -m 5 | awk 'NR < 3 {print $0}'                                                                              ~/Databases/Avian_genomes/Sandbox/combined
xread
2999 50

Deixe-me saber se você precisa de algum código do script além do que está contido na mensagem de erro. Não tenho certeza do que seria relevante.

questionAnswers(2)

yourAnswerToTheQuestion