繁体   English   中英

如何在 IPython 中打印标准输出摘录

[英]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 配置为默认寻呼机,请执行以下操作:

  1. 将环境 PAGER 变量设置为 less。
  2. 将环境 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM