How to use pipe in IPython

McBear Holden picture McBear Holden · Apr 21, 2011 · Viewed 7.3k times · Source

In a Linux terminal, when the output of one command is too long to read in one page, I can do this:

cat file | less

so that I can read and scroll up and down the output from the cat file.

How can I do this in IPython?

For example, I tried this and it didn't work:

whos | less

My original problem is that the output from whos is too much to be seen by doing Shift+Page Up and I don't want to change the scroll buffer.

Answer

Sven Marnach picture Sven Marnach · Apr 21, 2011

In IPython, you can use %page obj to show the object obj using your standard pager (usually less). Alternatively, you can increase the scroll buffer of your terminal, which might be convenient in any case.

%page obj -- display object similar to IPython default display (repr-like), using pager if output size requires

%page -r obj -- display object similar to print, using pager if size requires

%page can only take a plain name or attribute reference. It cannot evaluate an arbitrary expression, but you can use a temporary variable to work around this limitationL

tmp = ex * pr + ess - ion
%page tmp