python - Jupyter Lab/Notebook 魔法命令 %load 具有与平台无关的路径

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

我正在尝试开发一个 Jupyter 笔记本,其中包含具有 %load 魔术命令的单元格,可以从其他地方加载代码。此代码与笔记本所在的目录不在同一目录中。我希望它能够在 Windows、Linux 和 Mac 上运行,因此路径分隔符有时应该是“\”,有时应该是“/”。

通常我会使用 os.path.join 来解决这个问题。然而,当我使用加载命令执行此操作时,笔记本只是评估路径,而不实际加载代码。除了首先更改工作目录并在执行我加载的代码后将其更改回来之外,还有其他方法可以做到这一点吗?

简单示例:

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

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

最佳答案

在 Jupyter 中,您必须以类似 bash 的语法扩展变量,以便它们在魔法函数中工作。

这就是为什么您必须使用 $ 符号。 对于您的情况:

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

关于python - Jupyter Lab/Notebook 魔法命令 %load 具有与平台无关的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52148843/

相关文章:

python - 使用 jira-python 进行基本身份验证

html - 如果我创建 Image 对象但没有将其添加到 DOM 中,它是否会将图像 src 下载到用户页面中?

python - 在 Python 中绘制两个正弦曲线的总和

python - 基于位置向量聚合元素

python - 在 MacBook Air Catalina 中,conda 上的 pycafe 安装失败

javascript - 页面完全加载后执行某些操作

python - 概念问题 : Python Modules, 和文件导入,从其他文件导入函数

javascript - 我如何使用R htmlwidgets在jupyter笔记本中显示javascript可点击按钮

Python 特征向量

iOS : device is hanging while running an intensive computing task