This documentation covers IPython versions 6.0 and higher. Beginning with version 6.0, IPython stopped supporting compatibility with Python versions lower than 3.3 including all versions of Python 2.7.

If you are looking for an IPython version compatible with Python 2.7, please use the IPython 5.x LTS release and refer to its documentation (LTS is the long term support release).

Module: utils.capture

IO capturing utilities.

3 Classes

class IPython.utils.capture.RichOutput(data=None, metadata=None)

Bases: object

__init__(data=None, metadata=None)
class IPython.utils.capture.CapturedIO(stdout, stderr, outputs=None)

Bases: object

Simple object for containing captured stdout/err and rich display StringIO objects

Each instance c has three attributes:

  • c.stdout : standard output as a string
  • c.stderr : standard error as a string
  • c.outputs: a list of rich display outputs

Additionally, there’s a method which will print all of the above in the same order, and can be invoked simply via c().

__init__(stdout, stderr, outputs=None)

A list of the captured rich display outputs, if any.

If you have a CapturedIO object c, these can be displayed in IPython using:

from IPython.display import display
for o in c.outputs:

write my output to sys.stdout/err as appropriate


Captured standard error


Captured standard output

class IPython.utils.capture.capture_output(stdout=True, stderr=True, display=True)

Bases: object

context manager for capturing stdout/err

__init__(stdout=True, stderr=True, display=True)