如何中断Jupyter Notebook运行中的循环且不丢失已获得的数据
操作分步指南
- 第一步:中断当前运行的代码
点击Jupyter Notebook界面顶部工具栏的方形「停止」按钮,或点击顶部菜单栏「Kernel」>「Interrupt Kernel」即可。
*注意:中断后绝对不要点击重启Kernel、不要关闭当前Jupyter页面、不要刷新页面,否则内存中的data变量会直接丢失。 - 第二步:验证data变量有效性
新建一个代码单元,输入以下代码运行:
只要输出的数字大于0,就说明已经循环处理生成的数据全部完好保存在内存中。print(len(data)) - 第三步:永久保存data数据
推荐优先使用Python原生pickle格式存储,能完整保留列表内的所有数据结构,不需要额外适配格式:
如果你需要可直接打开查看的表格格式,且data内的数据为结构化内容,可以用以下代码存为CSV:import pickle # 数据会保存在当前notebook所在的文件夹中 with open('已处理数据完整备份.pkl', 'wb') as f: pickle.dump(data, f)
后续需要读取备份的pickle数据时,用以下代码即可:import pandas as pd pd.DataFrame(data).to_csv('已处理数据表格备份.csv', index=False, encoding='utf-8-sig')import pickle with open('已处理数据完整备份.pkl', 'rb') as f: data = pickle.load(f) - 第四步(可选):从断点继续运行未完成的循环
不需要从头重跑,跳过已经处理过的文件即可继续运行:# 已经处理完成的文件数量 processed_num = len(data) # 从下一个未处理的文件开始继续循环 for file_origin in onlyfiles[processed_num:]: path_to_text = mypath + '/' + file_origin data.append(tratamiento_datos(path_to_text))
内容的提问来源于stack exchange,提问作者Claudia C
相关产品推荐
相关产品推荐

