jupyter 笔记本可以找到自己的文件名吗?

Can a jupyter notebook find its own filename?

jupyter notebook 是否可以获取其自身文件的名称,类似于我们从 python 脚本中执行的操作?

os.path.basename(__file__) 似乎不起作用,至少对我来说在 jupyterlab 上是这样

sys.argv[0] returns my_home/anaconda3/lib/python3.6/site-packages/ipykernel_launcher.py

我发现的唯一方法是通过 JavaScritp,如 this answer.

紧凑形式是这样的单元格:

%%javascript
IPython.notebook.kernel.execute(`notebookName = '${window.document.getElementById("notebook_name").innerHTML}'`);

之后,您将拥有变量 notebookName,其名称出现在 页面顶部。

更好的解决方案可能是使用 IPython.notebook.notebook_name:

%%javascript
IPython.notebook.kernel.execute(`notebookName = '${IPython.notebook.notebook_name}'`);

它为您提供扩展名为 .ipynb

的名称