Ipython Notebook non sembra stampare i risultati in tempo reale, ma sembra bufferizzare in un determinato modo e quindi stampare in blocco le stampe. Come posso fare in modo che ipython stampi i miei risultati non appena viene elaborato il comando di stampa?Realizza la stampa del taccuino ipython in tempo reale
codice Esempio:
import time
def printer():
for i in range(100):
time.sleep(5)
print i
Supponendo che il codice di cui sopra è in un file che viene importato. Come posso far sì che quando chiamo la funzione della stampante stampi un numero ogni 5 secondi e non tutti i numeri alla fine?
Si prega di notare che non posso modificare la funzione printer()
perché ottengo da qualche modulo esterno. Voglio che cambi le configurazioni del notebook ipython in qualche modo in modo che non usi un buffer. Pertanto, non desidero nemmeno usare sys.stdout.flush(), voglio farlo in tempo reale in base alla domanda, non voglio che inizi il buffer.
Ho anche provato il caricamento di ipython notebook con il comando:
ipython notebook --cache-size=0
ma che anche non sembra funzionare.
Grazie. La mia domanda è leggermente diversa. Non voglio cambiare la funzione printer() perché ottengo l'importazione di un modulo che non voglio modificare. Voglio semplicemente cambiare il comportamento di ipython. Quindi le soluzioni proposte nella domanda sopra non funzionano per me perché non posso aggiungere sys.stdout.flush() alla funzione. Quello che voglio è che non ci sia buffer nel notebook ipython. Che emette automaticamente tutto. –
È possibile monitorare la funzione della stampante. – syntonym
Forse, ma ci dovrebbe essere un modo per annullare lo stdout del notebook ipython no? –