Jupyter Lab / Notebook魔术命令%load具有平台独立路径

时间:2018-09-03 11:25:53

标签: python load jupyter-notebook os.path ipython-magic

我正在尝试开发一个Jupyter笔记本,其中包含具有%load magic命令的单元,可以从其他地方加载代码。此代码与笔记本计算机不在同一目录中。我希望它可以在Windows,Linux和Mac上运行,因此路径分隔符有时应为'\',有时应为'/'。

通常,我将使用os.path.join解决此问题。不过,当我与load命令一起执行此操作时,笔记本仅评估路径,而实际上并未加载代码。除了首先只是更改工作目录并在执行我加载的代码后将其更改回之外,还有其他方法吗?

简要示例:

import os
%load os.path.join('example', 'file.py')

这会产生错误,因为它将实际搜索名称为os.path.join('example','file.py')的文件。如果我首先对此进行评估并将结果放入负载,我将得到:

import os
to_include = os.path.join('example', 'file.py')
print(to_include)
%load to_include

计算结果仅为

# %load to_include
example/file.py

但是显然我想要加载该文件的内容,而不是路径+文件名。我在做什么错了?

1 个答案:

答案 0 :(得分:1)

在Jupyter中,您必须以类似于bash的语法扩展变量,以使其在魔术函数中起作用。

这就是为什么您必须使用 $ 符号的原因。 就您而言:

number_in_month