【问题标题】:How to recover deleted iPython Notebooks如何恢复已删除的 iPython 笔记本
【发布时间】:2016-12-13 15:29:10
【问题描述】:

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

有谁知道我怎样才能恢复笔记本?我正在使用 Mac OS X。

谢谢!

【问题讨论】:

  • 如果您运行的是 OSX,您可能正在运行 Time Machine,并且能够从 Time Machine 备份中恢复它
  • 在 Windows 上,在回收站中找到了我的文件。点击右键恢复。

标签: ipython-notebook jupyter-notebook recovery


【解决方案1】:

这是 Thuener 回答的一些附加信息,

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

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

【讨论】:

  • 你太棒了。非常感谢。理想情况下,“jupyter”人应该已经解决了。但是很棒的方法。再次感谢这应该被接受为答案
  • Windows下可以在C:\Users\USERNAME\AppData\Local\Google\Chrome\User Data\Default\Cache中找到Chrome的缓存
【解决方案2】:

“删除”功能现在将文件发送到操作系统垃圾箱而不是永久删除它,请参阅此 PR:https://github.com/jupyter/notebook/pull/1968。因此,您只需打开您的垃圾箱(无论系统上的哪个位置)并恢复它。

【讨论】:

  • 哪个版本? jupyter 4.4.0 似乎并非如此。
  • 是的,我一直想回来更新:原来我运行的 notebook 版本高于 5.3,但因为我的文件保存在与主目录不同的驱动器上, Send2Trash 中断并静默删除文件而不是丢弃它。这很糟糕,因为确认删除消息已被删除,因为该过程不应该是破坏性的(但现在默默地是)。
  • 哦,真不幸!我建议在 Github 上打开一个问题。
  • 太棒了!可以在垃圾箱中找到它。
【解决方案3】:

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

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

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

%history -g -f anyfilename

【讨论】:

  • 这成功了!保存了一整天的工作,现在已经快凌晨 3 点了,,,谢谢!
【解决方案4】:

在 Linux 上:

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

【讨论】:

  • 这太棒了,方法确实有效!
  • 你为我节省了很多时间。上帝保佑你!
【解决方案5】:

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

在此处查看讨论:https://github.com/jupyter/notebook/issues/405

【讨论】:

  • 检查点已被设计为已消失,但直接将其删除而不是将其发送到废纸篓是尚未实现的。
【解决方案6】:

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

浏览器存储有关您访问的页面的缓存信息。你必须找到你的缓存浏览器文件夹(在 ubuntu 中,crhome 是 ~/.cache/google-chrome/Default/Cache)并在二进制文件中找到你笔记本的一些文本。然后,剪切文件中与您的 ipynb 相对应的文本部分。

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

【讨论】:

    【解决方案7】:

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

    1. 打开本地历史视图。

    2. 选择您要回滚到的版本。

    3. 在所选内容的上下文菜单中,选择“还原”。

    为我工作!

    来源:here

    【讨论】:

      【解决方案8】:

      如果您使用的是 Windows,它会将其发送到回收站,谢天谢地。显然,设置检查点是个好主意。

      【讨论】:

        【解决方案9】:

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

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

        【讨论】:

          【解决方案10】:

          遗憾的是,我的文件既不在检查点目录中,也不在 chromium 的缓存中。幸运的是,我有一个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

          【讨论】:

            【解决方案11】:

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

            【讨论】:

              【解决方案12】:

              如果你像我一样在 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 如果您在将目录从垃圾箱更改为文件时遇到问题,请不要忘记成为 root:

              sudo -i
              

              然后在 sudo -i 之后,使用:

              cd ..
              

              然后

              cd home/jupyter/.local/share/Trash
              cd files
              

              祝你好运,

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-02-26
                • 2019-06-18
                • 2018-09-03
                • 1970-01-01
                • 2015-08-21
                • 1970-01-01
                相关资源
                最近更新 更多