猿问

Jupyter Lab/Notebook 魔术命令 %load 与平台无关的路径

我正在尝试开发一个 Jupyter 笔记本,其中包含具有 %load 魔法命令以从其他地方加载代码的单元格。此代码与笔记本所在的目录不在同一目录中。我希望它可以在 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

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


紫衣仙女
浏览 186回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答