Gelegentlich möchten Sie möglicherweise die Ausgabe von IPython (Jupyter) -Linienmagie, Zellenmagie und anderen Ausgaben in einem Objekt (einer Variablen) anstelle der Standardausgabe speichern und später verarbeiten. (Beispiel: Ich möchte die Ausgabe, nicht den Rückgabewert der ausgeführten Funktion)
Es ist vielleicht keine sehr komplimentierte Methode, aber ich werde versuchen, sie zu implementieren, indem ich das Ausgabeziel von "sys.stdout" vorübergehend auf "StringIO" überspringe.
try:
from io import StringIO # Python3
except:
from cStringIO import StringIO # Python2
import sys
old_stdout = sys.stdout
sys.stdout = mystdout = StringIO()
%%time
for i in range(1000000):
i ** 2
sys.stdout = old_stdout
clock_times = mystdout.getvalue()
print(clock_times)
CPU times: user 467 ms, sys: 0 ns, total: 467 ms
Wall time: 469 ms
Recommended Posts