Nada está errado com tee
. Os buffers do Python saem quando detectam que não estão gravando em um TTY. Veja este Unix & amp; Postagem no Linux . Use sys.stdout.flush()
para forçar a liberação do buffer.
Estou executando o seguinte comando python
script piped
to tee
#!/usr/bin/python
from sys import exit,exc_info
from time import sleep
try:
print "hello"
#raise KeyboardInterrupt
while True:
print "hello"
sleep(1)
except KeyboardInterrupt:
print "Key board Interrupt"
exit(0)
Digamos que eu tenha armazenado isso em file.py
Agora, se eu executar:
./file.py | tee somefile
Agora pressione Ctrl+C
, observe que nada é impresso no somefile
e stdout
Em execução normal:
./file.py
Após Ctrl+C
:
hello
hello
^CKey board Interrupt
Além disso, o redirecionamento de arquivos está funcionando bem. O que há de errado com tee
Nada está errado com tee
. Os buffers do Python saem quando detectam que não estão gravando em um TTY. Veja este Unix & amp; Postagem no Linux . Use sys.stdout.flush()
para forçar a liberação do buffer.