在 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-%
魔法版本存在“|”的奇怪行为,我将不胜感激。
我想这也得到了解答,但我很难用正确的关键词进行搜索。
答案 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。