Восстановление истории команд в Jupyter Notebook?
Я редактировал Блокнот Jupyter на прошлой неделе и попытался сохранить его сегодня. При попытке сохранить его я получил ошибку, поэтому обновил страницу и успешно сохранил ее.
Однако, к моему ужасу, почти вся моя командная история была потеряна! У меня все еще есть доступ к переменным (ядро никогда не умирает), но у меня нет доступа ни к какому коду.
Есть ли способ восстановить код? Ядро все еще работает, но я не вижу никаких контрольных точек в моей записной книжке.
3 ответа
Вы можете получить историю IPython, которую Jupyter Notebook использует в качестве своего ядра. В одной из ячеек бегут:
%history
Это выведет историю (хорошую, плохую и уродливую) каждой команды, которую вы выполнили в текущем сеансе IPython. Это, вероятно, больше, чем вы хотите, но это лучше, чем потерять всю свою работу.
Что-то подобное произошло со мной, когда я не мог сохранить то, что сделал, обновил страницу и потерял все свои команды.
Вы можете получить всю историю записной книжки и перенаправить вывод в любой заданный файл, запустив
%history -g -f filename
В моем случае я перенаправил его в файл (.py). Дополнительную документацию можно найти здесь https://ipython.readthedocs.io/en/stable/interactive/magics.html разделе "%history".
Если ваше ядро не перезапустилось, вы можете получить свой код из глобальных файлов, например
_i{1,2,3,...}
.
Самый простой способ найти ваш код - запустить что-то вроде
print([k for k, v in globals.items() if 'some unique code snippet' in str(v)])
Скажите, что у вас есть что-то вроде
['_i2', '_i5', '_i9']
, тогда ты можешь
print(_i9)
и скопируйте его в новую ячейку.