有没有办法使用" less"在ipython中查看python输出

时间:2014-11-28 12:55:46

标签: python pipe ipython

ipython 中有一个魔术%less,它启用常规shell less命令。所以我们可以使用

less fname

%less fname

查看 fname 的内容。甚至很棒的事情是我们也可以使用

cat fname | less

%cat fname | less

NOT(!!!) 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

有办法解决这个问题吗?


对不起,我没有仔细搜索过,因为已经回答了2个类似的问题。

加:如果有人告诉%non-%魔法版本存在“|”的奇怪行为,我将不胜感激。 我想这也得到了解答,但我很难用正确的关键词进行搜索。

1 个答案:

答案 0 :(得分:6)

In [21]: x = os.environ.keys()
In [22]: %page x

通过输入%magic并在输出中向后搜索字符串“page”找到了这一点。


如果%less%page%cat%ls等字符串在命令的开头出现,则会将其视为IPython的神奇功能。请注意,如果您启用了automagic,则无需为行魔术明确键入%;这就是为什么less在命令开头输入时可能与%less的行为相同的原因。

当魔术函数没有出现在命令的开头时,该命令将被传递给Python并被视为常规Python代码。

在Python |中是bitwise-or operator

%调用__mod__ special method