简体   繁体   中英

How do you suppress output in Jupyter running IPython?

How can output to stdout be suppressed?

A semi-colon can be used to supress display of returned objects, for example

>>> 1+1
2

>>> 1+1;   # No output!

However, a function that prints to stdout is not affected by the semi-colon.

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

>>> MyFunction()
Calculating values...

How can the output from print / MyFunction be suppressed?

Add %%capture as the first line of the cell. eg

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

This simply discards the output, but the %%capture magic can be used to save the output to a variable - consult the docs

Suppress output

Put a ; at the end of a line to suppress the printing of output [ Reference ].

A good practice is to always return values from functions rather than printing values inside a function. In that case, you have the control; if you want to print the returned value, you can; otherwise, it will not be printed just by adding a ; after the function call.

(credit: https://stackoverflow.com/a/23611571/389812 )

You could use io.capture_output :

from IPython.utils import io

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

to supress (eg capture) stdout and stderr for those lines within the with-statement .

If anyone is interested in clearing all outputs:

  1. Go to Cell
  2. Go to All Output

Then choose whichever option you like.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM