在Linux终端中,当一个命令的输出太长而无法在一个页面中读取时,我可以这样做:
cat file | less
Run Code Online (Sandbox Code Playgroud)
这样我就可以读取并向上和向下滚动cat文件的输出.
我怎么能在IPython中做到这一点?
例如,我试过这个并没有用:
whos | less
Run Code Online (Sandbox Code Playgroud)
我最初的问题是,whos通过Shift + Page Up来看,输出太多了,我不想更改滚动缓冲区.
在ipython中有一个魔术%less可以启用常规shell less命令.所以我们可以使用
less fname
Run Code Online (Sandbox Code Playgroud)
要么
%less fname
Run Code Online (Sandbox Code Playgroud)
看到fname的内容.即使是美妙的事情,我们也可以使用
cat fname | less
Run Code Online (Sandbox Code Playgroud)
要么
%cat fname | less
Run Code Online (Sandbox Code Playgroud)
但不是(!!!) cat fname | %less或%cat fname | %less.
在ipython中也是如此!
遗憾的是,我发现对于非魔术python函数,输出似乎不能与管道一起使用.例如,以下都不起作用.
print(os.environ.keys()) | %less
print(os.environ.keys()) | less
echo os.environ.keys() | %less
echo os.environ.keys() | less
os.environ.keys() | %less
os.environ.keys() | less
Run Code Online (Sandbox Code Playgroud)
有办法解决这个问题吗?
对不起,我没有仔细搜索过,因为已经回答了2个类似的问题.
加:如果有人告诉魔术版的奇怪行为%并non-%存在"|",我将不胜感激.我想这也有答案,但我很难用正确的关键词进行搜索.