Как просто, как это звучит, как мне получить путь сохранения (расположение файла .ipynb) в ячейке с ноутбуком.
Как найти путь к текущему ноутбуку Ipython?
Ответ 1
С Jupyter вы можете получить относительный путь к ноутбуку в URL с помощью:
%%javascript
var kernel = Jupyter.notebook.kernel;
var command = ["notebookPath = ",
"'", window.document.body.dataset.notebookPath, "'" ].join('')
//alert(command)
kernel.execute(command)
var command = ["notebookName = ",
"'", window.document.body.dataset.notebookName, "'" ].join('')
//alert(command)
kernel.execute(command)
Затем вы можете проверить переменные python notebookName и notebookPath
Я не уверен в результатах в случае префикса url и как обрабатывать случай, когда вы уже изменили текущий каталог в ноутбуке
Ответ 2
Оказывается, можно использовать некоторую магию javascript, чтобы получить путь к ноутбуку из некоторых атрибутов в теге HTML страницы ноутбука:
%%javascript
var kernel = IPython.notebook.kernel;
var proj = window.document.body.getAttribute('data-project');
var path = window.document.body.getAttribute('data-notebook-path');
var command = "proj = " + "'"+proj+"'";
kernel.execute(command);
var command = "path = " + "'"+path+"'" kernel.execute(command)
После выполнения вышеуказанного в ячейке можно получить путь, выполнив
import os
os.path.join( proj, path)