如何恢复已删除的iPython笔记本

时间:2016-08-07 22:58:43

标签: ipython-notebook jupyter-notebook recovery

我有通过Anaconda的iPython Notebook。我不小心删掉了一个重要的笔记本,我似乎无法在垃圾箱中找到它(我不认为iPy笔记本电脑会被丢弃)。

有谁知道如何恢复笔记本电脑?我使用的是Mac OS X.

谢谢!

12 个答案:

答案 0 :(得分:12)

这是关于Thuener答案的其他信息,

我执行了以下操作来恢复已删除的.ipynb文件。

  1. 缓存位于〜/ .cache / chromium / Default / Cache /(我使用铬)
  2. 在二进制搜索模式下使用grep,grep -a' import math' (用代码中特定的关键字替换搜索字符串)
  3. 在vim中编辑二进制文件(它不会在gedit中打开)
    • python ipynb应该以' {" cells":'和
    • 结束于'" nbformat":4," nbformat_minor":2}'
    • 删除这些起点和终点之外的所有内容
  4. 将文件重命名为.ipynb,在jupyter-notebook中打开它,它可以正常工作。

答案 1 :(得分:9)

如果您通过操作系统(rm file.ipynb)将其删除,那么您可以从〜/ .ipython_checkpoints /获取它。但是,如果您从浏览器菜单选项中删除它,它就会消失(按设计!)。< / p>

请参阅此处的讨论:https://github.com/jupyter/notebook/issues/405

答案 2 :(得分:7)

在linux上:

我犯了同样的错误,最后我在垃圾箱中找到了已删除的文件 /home/$USER/.local/share/Trash/files

答案 3 :(得分:5)

&#34;删除&#34;功能现在将文件发送到操作系统垃圾桶而不是永久删除它,请参阅此PR:https://github.com/jupyter/notebook/pull/1968。因此,您只需打开“废纸篓”(系统中的任何位置)并将其还原即可。

答案 4 :(得分:3)

对于像我这样不幸的人,删除JuliaBox上的一些文件(jupyter for julia),有一个解决方案。我成功恢复了所有已删除的文件。

浏览器会删除有关您访问的页面的缓存信息。你必须找到你的缓存浏览器文件夹(在ubuntu中使用crhome是〜/ .cache / google-chrome / Default / Cache)和grep来查看二进制文件中笔记本的某些文本。然后,剪切与您的ipynb对应的文件的文本部分。

https://groups.google.com/forum/#!searchin/julia-box/delete%7Csort:relevance/julia-box/Rt9LG9RldrU/3s_vVSrivJEJ

答案 5 :(得分:3)

我认为检索Ipython历史记录的最简单方法(直到开发人员处理此问题)是将它们全部写入空文件。

您需要按照创建上一个脚本的日期进行检查。显然,这将是你的Ipython历史的最后一部分。

将您的Ipython历史记录写入文件:

from kivy.app import App
from kivy.config import Config
Config.set('graphics', 'width', '300')
Config.set('graphics', 'height', '200')


class TestApp(App):
    pass


if __name__ == '__main__':
    TestApp().run()

答案 6 :(得分:1)

如果您使用PyCharm,您可以执行以下操作。

  1. 打开“本地历史记录”视图。

  2. 选择要回滚的版本。

  3. 在选择的上下文菜单中,选择还原。

  4. 为我工作!

    来源:here

答案 7 :(得分:0)

可悲的是,我的文件既不在checkpoints目录中,也不在Chrome的缓存中。幸运的是,我有一个ext4格式的文件系统,并且能够使用extundelete恢复我的文件:

  1. 找出您丢失的已删除文件存储在的驱动器上:

    df /your/deleted/file/diretory/

  2. 切换到您具有写访问权的另一个文件夹:

    cd /your/alternate/location/

  3. 建议在已卸载的分区上运行extundlete。因此,如果您删除的文件未与操作系统存储在同一驱动器上,建议您卸载已删除文件的分区(尽管您可能需要确保extundlete已安装,然后再继续):

    sudo umount /dev/sdax 其中sdax是您的df命令先前返回的分区

  4. 使用extundelete还原文件:

    sudo extundelete --restore-file /your/deleted/file/diretory/delted.file /dev/sdax

  5. 如果成功,恢复的文件将位于:

    /your/alternate/location/your/deleted/file/diretory/delted.file

答案 8 :(得分:0)

如果您使用的是Windows,请将其发送到回收站。显然,创建检查点是个好主意。

答案 9 :(得分:0)

我遇到了一个问题,最终解决了问题this way。某些人可能是这种情况。

答案 10 :(得分:0)

只要您的内核处于活动状态,每个执行的单元格的代码都会存储在输入历史记录列表中。当您意外删除一个单元格并想要检索其内容时,这将派上用场。

_ih[-10:] *# code of the 10 most recently run cells (Even if those cells are deleted now)*

答案 11 :(得分:0)

如果您像我一样在Linux上的Jupyterlab上运行。我所做的是进入命令提示符,然后转到我的垃圾箱文件夹。

Linux上的垃圾目录通常是

/home/$USER/.local/share/Trash

如果您以root身份删除了某些内容(例如,使用通过gksu调用的Nautilus删除了文件),则该文件位于

/root/.local/share/Trash

我最终将目录更改为/home/$USER/.local/share/Trash/files,删除的笔记本在那里!根据您访问后端的方式,您还可以尝试/home/jupyter/.local/share/Trash /

ps 如果由于权限而在将目录从“废纸to”更改为文件时遇到问题,请不要忘记成为root:

sudo -i

,然后从那里移动到文件。

祝你好运