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