jupyter notebook中ipynb文件输出内容太多打不开的解决方法 您所在的位置:网站首页 无染二次元app怎么突然打不开了 jupyter notebook中ipynb文件输出内容太多打不开的解决方法

jupyter notebook中ipynb文件输出内容太多打不开的解决方法

2024-07-12 11:27| 来源: 网络整理| 查看: 265

前言

jupyter notebook在数据分析和建模领域是一把利器,可以一行一行或者一个cell一个cell看输出结果,把复杂的问题简单化。

每一个变量都是有缓存的,当流程比较复杂的时候,可以直接从某一步重新开始,而不是重头开始,这样就大大提高了效率。

jupyter notebook优点很多,但是因为缓存也可能会改变了原本数据,或者变量的值做了其他改变却不知,当然本文记录的却是其他问题:输出内容太多,导致jupyter notebook中ipynb文件太大而导致文件打不开。

有许多方式可以解决当前问题。

方法一

如果文件还能打开,直接清除输出 Kernel --> Restart & Clear Output

在这里插入图片描述

如果文件打得开手动删除,或者使用方法一都可以,但是棘手的问题是如果文件已经打不开了,改怎么办呢?

方法二

复制一份源代码文件,形成一个新的文件

安装nbconvert插件,在cmd中输入

pip install jupyter_contrib_nbextensions

到要复制的文件目录下,然后复制一份新的源文件 输入以下命令, test.ipynb改为要复制的文件

jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to notebook --output=NotebookNoOut test.ipynb

在这里插入图片描述 能看出来新生成的NotebookNoOut.ipynb仅仅只有2.04kB,仅仅保留了源代码。

方法三

还是需要先安装jupyter_contrib_nbextensions插件

直接在ipynb文件上将output删除

jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace test.ipynb

同样,test.ipynb改成自己的ipynb文件

方法四

使用记事本打开当前ipynb文件 在这里插入图片描述

"cells"后面的内容便是ipynb的所有cell,"outputs"便是显示信息,outputs中的"text"便是输出的内容,将[]中的内容删除,当前的输出信息便成空,只需要找到导致文件打不开的outputs的”text“后删除即可。

当前方法是比较推荐的方法,毕竟不需要安装任何东西,并且选择性的删除输出内容。

方法五 通过代码提取 import json with open('test.ipynb', 'r', encoding='utf8')as f: json_data = json.load(f) for i in range(len(json_data['cells'])): tmp = json_data['cells'][i]['source'] print("cell", json_data["cells"][i]["execution_count"]) for j in tmp: print(j, end = '') print('\n')

在这里插入图片描述 此处提取出来的便是每隔cell的代码了,但是呢ipynb的代码结构却发生了变化,使用起来就不方便了。

如果进一步,保留代码和代码格式该如何处理呢?

既然ipynb是通过某种格式存储的,那么保留存储格式即可,将text后面置为[]即可。

代码:

import json with open('./Untitled1.ipynb', 'r', encoding='utf8') as f: json_data = json.load(f) for cell in json_data['cells']: if 'outputs' in cell: for output in cell['outputs']: if 'text' in output: output['text'] = [] with open('test-copy.ipynb', 'w', encoding='utf-8') as file: file.write(json.dumps(json_data, indent=2, ensure_ascii=False))

运行结果 产生一个名为test-copy.ipynb的文件,使用jupyter notebook打开 在这里插入图片描述 和上边的命令得到的结果完全相同,实现了直接所有输出都去掉的功能,这样文件便非常小,可以打开了。

当前方法也是比较推荐的方法,不需要安装任何东西,输出内容的内容可以增加更多的判断,比如输出内容的长度等。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有