Python中IPython输出结果太多,如何显示前面的内容?
如何能显示全部结果。
Python中IPython输出结果太多,如何显示前面的内容?
5 回复
shift + Page up ?
用 ; 分号就行。
IPython里,如果一行代码的返回值你不想让它显示出来,在行尾加个分号 ; 就能抑制输出。比如你跑了个循环或者函数,打印了一堆东西,最后那行结果不想看,就加 ;。
# 假设这个操作会产生大量输出
result = some_function_that_prints_a_lot()
# 这里 result 可能是个很大的对象,IPython默认会显示它的repr
result; # 加上分号,最后一行的这个返回值就不会显示出来了
更常见的场景是画图的时候,matplotlib 画完图,最后总返回个对象列表,很烦人:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
# 不加分号,这里会输出一堆 [<matplotlib.lines.Line2D at 0x...>]
plt.plot([1, 2, 3], [4, 5, 6]);
# 加上分号,图照画,但那些烦人的文本输出就没了
简单说就是:不想看哪行代码的返回值,就在那行结尾加个分号。
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = “all”
谢谢,不过如果结果太多,后面的还是会覆盖前面的。
谢谢帮助。

