在Linux终端中,当一个命令的输出太长而无法在一个页面中读取时,我可以这样做:
cat file | less
这样我就可以阅读并向上和向下滚动cat文件的输出。
我怎样才能在IPython中做到这一点?
例如,我尝试了这个并且它不起作用:
whos | less
我最初的问题是来自whos
的输出太多而无法通过Shift + Page Up看到,我不想更改滚动缓冲区。
答案 0 :(得分:21)
在IPython中,您可以使用%page obj
使用标准寻呼机(通常为obj
)来显示对象less
。或者,您可以增加终端的滚动缓冲区,这在任何情况下都可能很方便。
%page obj
- 显示对象类似于IPython默认显示(类似repr),如果输出大小需要使用寻呼机
%page -r obj
- 显示与打印类似的对象,如果尺寸需要使用寻呼机
%page
只能使用普通名称或属性引用。它无法评估任意表达式,但您可以使用临时变量来解决此限制问题
tmp = ex * pr + ess - ion
%page tmp
答案 1 :(得分:2)
使用寻呼机应该是自动的。
来自manual:
要将less配置为默认寻呼机,请执行以下操作:
- 将环境PAGER变量设置为less。
- 将环境LESS变量设置为-r(以及默认情况下总是要传递给较少的任何其他选项)。这样可以更好地解释控制序列,这就是为终端提供颜色信息的方式。
醇>对于bash shell,在〜/ .bashrc文件中添加以下行:
export PAGER=less export LESS=-r
答案 2 :(得分:0)
系统shell访问
任何以!开头的输入行!字符被逐字传递(减去!当然)到底层操作系统。例如,键入!ls将在当前目录中运行“ls”。
来源:http://ipython.scipy.org/doc/rel-0.9.1/html/interactive/reference.html#id1
答案 3 :(得分:0)
在我的 IPython(7.21 版)管道上,在 !
前缀之后确实有效。
基本用法:
!cat ~/.vimrc | less
即使使用 python 变量替换也能工作:
# send `some_large_python_str` to pastebin
!cat "{some_large_python_str}" | pastebin
注意在替换 "
周围使用引号 {...}
。