我有一个IPython笔记本,在其中我意外地丢弃了一个导致笔记本崩溃的巨大输出(15 MB)。现在,当我打开笔记本电脑并尝试删除有问题的单元格时,笔记本电脑又崩溃了,从而使我无法修复问题并恢复笔记本电脑的稳定性。

我能想到的最佳解决方案是手动将输入单元粘贴到新笔记本上,但是有没有办法只打开笔记本而没有任何输出?

最佳答案

有一个很好的代码片段(我用作git commit钩子)来剥离ipython Notebook的输出:

#!/usr/bin/env python

def strip_output(nb):
    for ws in nb.worksheets:
        for cell in ws.cells:
            if hasattr(cell, "outputs"):
                cell.outputs = []
            if hasattr(cell, "prompt_number"):
                del cell["prompt_number"]


if __name__ == "__main__":
    from sys import stdin, stdout
    from IPython.nbformat.current import read, write

    nb = read(stdin, "ipynb")
    strip_output(nb)
    write(nb, stdout, "ipynb")
    stdout.write("\n")


您可以轻松地使它变得更好用,目前,您必须将其称为

strip_output.py < my_notebook.ipynb > my_notebook_stripped.ipynb

关于ipython - 如何在没有输出的情况下打开IPython笔记本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25178118/

10-13 01:56