You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jupyter/Colab中%%capture无法捕获图像等输出的技术问询

解决方案

要完整捕获Jupyter单元格的所有输出(包括图像、表格、HTML元素)并在其他单元格还原,别用%%capture,改用IPython内置的Output对象,它能保存输出的所有MIME类型数据,后续可完整还原。

CELL_A:捕获输出并保存到文件

from IPython.display import Output
import pickle
import pandas as pd
import matplotlib.pyplot as plt

# 创建Output对象用于捕获所有输出
with Output() as captured_output:
    # 示例输出1:pandas表格
    df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]})
    display(df)
    
    # 示例输出2:matplotlib图像
    plt.figure(figsize=(5,3))
    plt.plot(df['A'], df['B'])
    plt.title('Sample Plot')
    plt.show()
    
    # 示例输出3:HTML内容
    from IPython.display import HTML
    display(HTML('<h3>这是一段HTML内容</h3>'))

# 将捕获的Output对象序列化保存到文件
with open('captured_output.pkl', 'wb') as f:
    pickle.dump(captured_output, f)

CELL_B:加载文件并还原完整输出

import pickle
from IPython.display import display

# 读取保存的Output对象
with open('captured_output.pkl', 'rb') as f:
    captured_output = pickle.load(f)

# 还原显示所有输出
display(captured_output)

说明

  • Output对象会记录所有输出的原始MIME数据(比如图像的二进制流、pandas表格的HTML表示),因此能100%还原单元格输出的所有内容。
  • 序列化用pickle是因为它能直接保存Python对象,若需要跨语言兼容,可自行将MIME数据提取后用JSON+Base64编码存储(但复杂度会高一些)。

内容的提问来源于stack exchange,提问作者Muhammad Ikhwan Perwira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 12:43:12