如何在IPython中使用管道

如何在IPython中使用管道,python,scroll,ipython,pager,ipython-magic,Python,Scroll,Ipython,Pager,Ipython Magic,在Linux终端中,当一个命令的输出太长而无法在一个页面中读取时,我可以这样做: cat file | less 这样我就可以读取并上下滚动cat文件的输出 在IPython我怎么做 例如,我尝试了这个,但没有成功: whos | less 我最初的问题是,通过执行Shift+Page Up操作,whos的输出太多,我不想更改滚动缓冲区。在IPython中,您可以使用%Page obj使用标准寻呼机显示对象obj。或者,您可以增加终端的滚动缓冲区,这在任何情况下都可能很方便 %page ob

在Linux终端中,当一个命令的输出太长而无法在一个页面中读取时,我可以这样做:

cat file | less
这样我就可以读取并上下滚动cat文件的输出

在IPython我怎么做

例如,我尝试了这个,但没有成功:

whos | less

我最初的问题是,通过执行Shift+Page Up操作,
whos
的输出太多,我不想更改滚动缓冲区。

在IPython中,您可以使用
%Page obj
使用标准寻呼机显示对象
obj
。或者,您可以增加终端的滚动缓冲区,这在任何情况下都可能很方便

%page obj
--显示对象类似于IPython默认显示(类似repr),如果输出大小需要,使用寻呼机

%page-r obj
--显示类似于打印的对象,如果大小需要,可以使用寻呼机

%page
只能采用普通名称或属性引用。它不能计算任意表达式,但可以使用临时变量来解决此限制

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

系统外壳访问

任何以a开头的输入行!字符被逐字(当然,减去!)传递给底层操作系统。例如,打字!ls将在当前目录中运行“ls”


来源:

应自动使用寻呼机

从:

要将less配置为默认寻呼机,请执行以下操作:

  • 将环境寻呼机变量设置为less
  • 将environment LESS变量设置为-r(以及默认情况下始终希望传递给LESS的任何其他选项)。这告诉less如何正确解释控制序列,这是如何将颜色信息提供给终端的
  • 对于bash shell,将以下行添加到~/.bashrc文件中:

    export PAGER=less
    export LESS=-r
    

    嗨,谢谢你的回复。我听说过增加滚动缓冲区。但这不是我要找的。我想在ipython中使用命令“less”来查看%whos的输出。你知道怎么做吗?对不起,我又读了一遍,不明白。我尝试过“%page%whos”无效;我试过=%whos,%page out不起作用either@osager:抱歉,我错过了您要为
    %whos
    magic命令的输出分页的步骤。这是一个不同的故事——不幸的是,
    %page
    在这里没有帮助。到目前为止,这是最好的答案!默认情况下,显示对象的repr<代码>%page-r对于文本很有用,因为它显示的换行符和unicode与打印相同。佩奇不接受表达,所以如果你需要一些技巧,你必须先做
    tmp=2**32
    ,然后
    %page x
    嗨,首先感谢你回答我的问题,但也许我没有正确表达自己,但人们似乎不理解我的问题。我的问题可以简单地说:你如何在ipython中做到这一点?@osager:在ipython列表上似乎表明你所要求的功能不受支持。听起来你有一个,其中Y是不可能的,所以你在这里得到的解决方案是试图解决X(你更大的问题)。@osager:如果你真的想要whos的输出,您应该做
    psource whos
    ,它转储了该神奇函数的源代码,并且可以作为您编写自己的函数的起点,完全满足您的需要。感谢您的回复,这非常有帮助!特别是第一个到ipython邮件列表的链接