Estou usando less
como pager para que a saída do aplicativo possa ser lida facilmente. Eu crio o subprocesso assim:
a_process = subprocess.Popen(["less"], stdin=subprocess.PIPE)
Então escrevo no pager assim (várias linhas):
a_process.stdin.write("hello\n".encode())
a_process.stdin.flush()
Antes de terminar a execução, eu chamo a_process.wait()
e o usuário pode mover-se para cima e para baixo conforme o esperado... se o usuário clicar q
no pager e o aplicativo python terminar, pois não há mais coisas no script python... no entanto , se o usuário chegar ao final da saída que forneci less
, a UI congela.... o usuário não pode subir, não pode sair de usar q
... só ctrl-c
funcionará para finalizar a execução.
Que peça estou faltando para evitar chegar a esse estado?