在 Jupyter Notebook 中访问 Root
Accessing Root in Jupyter Notebook
我已经从 D:/ 驱动器启动笔记本,但向下浏览了几个目录。我的笔记本在 D:/dir1/dir2/notebook.ipynb。在我当前的笔记本中,我想在 D:/ 的根目录中执行一个脚本,我的笔记本会话就是从那里开始的。
我想避免更改相对路径,希望有一种方法可以访问我启动笔记本的目录位置(对应于本地主机的位置:xxxx/tree。这可能吗?
这是一种有点 hacky 的方法,但有效:
import jupyter_core
import os,glob,json
jrd = jupyter_core.paths.jupyter_runtime_dir()
with open(glob.glob(jrd+'/nbserver-*.json')[0]) as json_file:
root_dir = json.load(json_file)['notebook_dir']
通配的原因是因为您要查找的 json 文件的名称中有一个对应于进程 ID (PID) 的数字。
因此,如果您只有一个笔记本实例,此方法将保证有效。如果您知道 PID,则无需使用 glob
我已经从 D:/ 驱动器启动笔记本,但向下浏览了几个目录。我的笔记本在 D:/dir1/dir2/notebook.ipynb。在我当前的笔记本中,我想在 D:/ 的根目录中执行一个脚本,我的笔记本会话就是从那里开始的。
我想避免更改相对路径,希望有一种方法可以访问我启动笔记本的目录位置(对应于本地主机的位置:xxxx/tree。这可能吗?
这是一种有点 hacky 的方法,但有效:
import jupyter_core
import os,glob,json
jrd = jupyter_core.paths.jupyter_runtime_dir()
with open(glob.glob(jrd+'/nbserver-*.json')[0]) as json_file:
root_dir = json.load(json_file)['notebook_dir']
通配的原因是因为您要查找的 json 文件的名称中有一个对应于进程 ID (PID) 的数字。
因此,如果您只有一个笔记本实例,此方法将保证有效。如果您知道 PID,则无需使用 glob