¿Cómo se suprime la salida en IPython Notebook?


113

¿Cómo se stdoutpuede suprimir la salida ?

Se puede utilizar un punto y coma para suprimir la visualización de los objetos devueltos, por ejemplo

>>> 1+1
2

>>> 1+1;   # No output!

Sin embargo, una función que imprime en stdout no se ve afectada por el punto y coma.

>>> print('Hello!')
Hello!

>>> MyFunction()
Calculating values...

¿Cómo se puede suprimir la salida de print/ MyFunction?


para el kernel de iruby solo agregue nil como la última línea
— frenesim

Respuestas:


167

Agregue %%capturecomo la primera línea de la celda. p.ej

%%capture
print('Hello')
MyFunction()

Esto simplemente descarta la salida, pero la %%capturemagia se puede usar para guardar la salida en una variable; consulte los documentos


2
¿Alguien sabe qué es lo opuesto a %% capture? Como en, ¿cómo se detiene la captura %% dentro de una celda, o está habilitada hasta el final de la celda?
— David Parks

2
Es bueno saber que %%capturesolo está habilitado hasta el final de la celda y debe aparecer antes de cualquier código en la celda. (Por lo tanto, parece que no hay forma de desencadenar dentro de una celda)
— Arel

La discusión de ICYMI, @David Parks y @ Arel está cubierta por la respuesta de @ gwd2 en esta página sobre el uso with io.capture_output() as captured:que puede ajustar dentro de una celda para capturar solo lo que se ejecuta en ese withcontexto.
— Wayne

Tenga en cuenta que esto solo funciona para núcleos de Python (por ejemplo, no R).
— Max Ghenis

90

Suprimir salida

Ponga ;al final de una línea para suprimir la impresión de la salida [ Referencia ].


4
Esto no ocurre con un código dentro de un forbucle. ¿Algunas ideas? Solo quiero suprimir la salida de líneas particulares de código en la celda, no todas las líneas. Gracias
— Confundido el

16

(crédito: https://stackoverflow.com/a/23611571/389812 )

Podría usar io.capture_output :

from IPython.utils import io

with io.capture_output() as captured:
    MyFunction()

para suprimir (por ejemplo, capturar) stdout y stderr para esas líneas dentro de with-statement.


Muchas gracias, esto me estaba volviendo loco: tengo una función de inicio que ejecuto cada vez que abro una computadora portátil que llama %autosavey quería suprimir su salida. Pensé que sería simple, pero extrañamente, contextlib.redirect_stdouty sys.stdout = open(os.devnull, 'w')ambos fallan (terminan imprimiendo una línea en blanco adicional). Esta debería ser la respuesta aceptada.
— Luke Davis

1
Esta fue mi respuesta favorita, porque se puede suprimir parte de la salida en una celda sin suprimirla por completo.
— Wolpertinger

-5

Si alguien está interesado en borrar todos los resultados:

  1. Ir a la celda
  2. Ir a todas las salidas

Luego, elija la opción que desee.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.