Ubuntu passa informações para um arquivo de texto durante a execução do processo

2

Meu problema é que tenho uma função chamada function1, que é executada indefinidamente. A própria função echo "olá" a cada 1 segundo. Usando o comando:

function1 >> temp.txt

A cada 1 segundo, se eu quiser ver o arquivo temp.txt, eu devo ver uma nova linha com "olá". No entanto, o que está acontecendo é que a função não grava no arquivo até que seja finalizado. Portanto, se eu quiser matar a função, nada será escrito. Alguém sabe de algo que eu posso fazer nesta situação que basicamente atualizará dinamicamente temp.txt?

Eu tenho um script python configurado da seguinte maneira:

while [1>0]: print "hello" time.sleep(1)

Portanto, isso sempre estará em execução. Agora eu chamo isso em um script bash

python pythonscript.py >> temp.txt

Se eu kill o processo nenhum dado é registrado.

    
por Matt Stokes 20.07.2012 / 21:36

1 resposta

2

Agora que você mencionou, não é uma função shell, mas uma função python em um script python: Isso explica alguns, e aí vem sua resposta:

printing - Como liberar a saída da impressão em Python? - estouro de pilha

Você precisa colocar isso dentro do loop de sua função python: sys.stdout.flush() - e é claro que você precisa import sys antes (ou from sys import ... se você precisar apenas de uma parte dele).

    
por 20.07.2012 / 22:19

Tags