EOF indica que nenhuma entrada adicional é esperada em um recurso que possivelmente forneça uma quantidade infinita de dados (por exemplo, um fluxo). Essa situação é frequentemente expressa escrevendo-se um único caractere no fluxo (a ser definido pelo sistema subjacente (provavelmente um sistema operacional ou ambiente de tempo de execução)).
Como os processos usam fluxos para comunicação entre processos, eles precisam indicar os limites de sua saída e os processos de envio precisam injetar os limites de suas entradas usando EOF. O sistema subjacente certamente encaminhará esse input e output para seus próprios mecanismos de manejo de processos, tornando o EOF disponível para avaliação no programa / no sistema.
Observação sobre o caso de uso pexpect
na pergunta: shutil.pexpect
parece não ser adequado para copiar arquivos de um contêiner lxc
. Ele ficou preso e o deslocamento de tempo da saída pexpect
causa confusão.