##// END OF EJS Templates
avoid references to fiel out of directory...
avoid references to fiel out of directory request for packaging, it would be nice for example not to reference files outside of exampel directory copy ../../_static/logo.png in logo/logo.png use subfolder for demo purpose of targetting subfolder in demo notebook

File last commit:

r7739:dff285da
r9992:713f1db0
Show More
Capturing Output.ipynb
208 lines | 4.2 KiB | text/plain | TextLexer

Capturing Output with %%capture

One of IPython's new cell magics is %%capture, which captures stdout/err for a cell, and discards them or stores them in variables in your namespace.

In [ ]:
import sys

By default, it just swallows it up. This is a simple way to suppress unwanted output.

In [ ]:
%%capture
print 'hi, stdout'
print >> sys.stderr, 'hi, stderr'

If you specify a name, then stdout and stderr will be stored in an object in your namespace.

In [ ]:
%%capture captured
print 'hi, stdout'
print >> sys.stderr, 'hi, stderr'
In [ ]:
captured

Calling the object writes the output to stdout/err as appropriate.

In [ ]:
captured()
In [ ]:
captured.stdout
In [ ]:
captured.stderr

%%capture only captures stdout/err, not displaypub, so you can still do plots and use the display protocol inside %%capture

In [ ]:
%pylab inline
In [ ]:
%%capture wontshutup

print "setting up X"
x = np.linspace(0,5,1000)
print "step 2: constructing y-data"
y = np.sin(x)
print "step 3: display info about y"
plt.plot(x,y)
print "okay, I'm done now"
In [ ]:
wontshutup()

And you can selectively disable capturing stdout or stderr by passing --no-stdout/err.

In [ ]:
%%capture cap --no-stderr
print 'hi, stdout'
print >> sys.stderr, "hello, stderr"
In [ ]:
cap.stdout
In [ ]:
cap.stderr