[英]How to print stdout excerpt in IPython
在 Linux 终端中,当一个命令的输出太长而无法在一页中读取时,我可以这样做:
cat file | less
这样我就可以阅读和上下滚动 cat 文件的输出。
我怎样才能在 IPython 中做到这一点?
例如,我尝试了这个,但它没有用:
whos | less
我最初的问题是,通过 Shift+Page Up 可以看到whos
的输出太多,我不想更改滚动缓冲区。
在 IPython 中,您可以使用%page obj
使用标准寻呼机(通常是less
)显示对象obj
。 或者,您可以增加终端的滚动缓冲区,这在任何情况下都可能很方便。
%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
!echo "{some_large_python_str}" | pastebin
请注意在替换{...}
周围使用引号"
。
系统外壳访问
任何以 ! 开头的输入行字符被逐字传递(当然,减去!)到底层操作系统。 例如,输入 !ls 将在当前目录中运行 'ls'。
来源:http: //ipython.scipy.org/doc/rel-0.9.1/html/interactive/reference.html#id1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.