运行中的Jupyter Notebook如何暂停并保留变量状态或导出CSV?
问题解答
方案1:保留变量状态暂停运行
首先明确:Jupyter的Python内核运行和网络状态没有强绑定,路由器重启不会直接导致运行中断或变量丢失,分两种场景说明:
- 如果你是在本地设备启动的Jupyter服务:访问Jupyter时直接用
localhost:端口号或127.0.0.1:端口号走本地回环地址即可,全程不经过路由器,重启路由器期间仅会断外网,脚本会正常运行,所有变量状态自动保留,不需要额外暂停操作。 - 如果你是在局域网其他设备/远程服务器运行Jupyter服务:只要你的脚本本身没有网络请求逻辑,路由器重启仅会导致前端页面和内核临时失联,内核会在设备上继续运行,等网络恢复后刷新Jupyter页面重新连接内核即可,变量不会丢失。如果脚本包含网络请求逻辑,可点击Jupyter界面的「中断内核」按钮(正方形停止图标),仅终止当前运行的代码,不会清空内存变量,等网络恢复后再从中断位置继续运行即可。
方案2:运行中导出当前DataFrame为CSV
不需要停止内核,按以下步骤操作即可:
- 点击Jupyter界面的「中断内核」按钮,终止当前正在执行的更新逻辑,该操作不会清空任何已生成的变量
- 新建一个代码Cell,执行导出命令,将你当前的DataFrame导出为CSV:
如果需要完整备份所有变量状态,也可以用pickle序列化存储:# 把df替换为你实际的DataFrame变量名 df.to_csv('当前数据备份.csv', index=False, encoding='utf-8-sig')import pickle # 可以把需要存储的变量都放进字典里 pickle.dump({'df': df, '其他变量名': 其他变量值}, open('全量变量备份.pkl', 'wb')) - 备份完成后,你可以根据自己的更新逻辑,从中断的位置继续执行剩余代码,不需要从头开始运行。
注意事项
- 不要执行「重启内核」「关闭运行Jupyter的终端/后台进程」「关闭运行Jupyter的本地/远程设备」操作,只有这些操作会清空内存变量,断网、中断代码运行都不会导致变量丢失。
- 如果是增量更新逻辑,备份时可以额外记录当前更新到的位置,后续继续运行时直接从该位置开始处理,避免重复计算。
内容的提问来源于stack exchange,提问作者Andrei Muha
相关产品推荐
相关产品推荐

