在 Google Colab 上的 Jupyter Notebooks 中,使用 % 和 !运行外壳命令?



问题在标题中。

我知道%在IPython中通常表示一个"魔术变量"。这不是一个我非常熟悉的概念,但我已经读过了

然而,今天我看到了一个教程,其中有人使用它来运行shell命令。通常情况下,我看到并使用过!

有区别吗?当我尝试它们时,它们似乎都在做同样的事情。

区别在于:

  • 使用!运行命令时,它会直接在子shell中执行bash命令。

  • 当您使用%运行一个命令时,它会执行IPython中定义的一个神奇命令。

IPython定义的一些魔术命令有意镜像bash命令,但它们在实现细节上有所不同。

例如,运行!cdbash命令不会持久地更改目录,因为它在临时子shell中运行。但是,运行%cd魔术命令会持续更改您的目录:

!pwd
# /content
!cd sample_data/
!pwd
# /content
%cd sample_data/
!pwd
# /content/sample_data

阅读更多IPython:内置魔术命令。

最新更新