在 jupyter 中使用带有 bash 魔法的 python 变量

vkk*_*ali 6 python bash jupyter-notebook

我想使用%%bashmagic 命令在 jupyter 笔记本中运行 bash 命令并传递 python 变量。正如这篇文章中所述,我可以按如下方式执行此操作:

%%bash -s {foo} {bar}
cp $1 $2
Run Code Online (Sandbox Code Playgroud)

这很好用。然而,当我有一堆这样的变量并且 bash 命令很长时,使用$1$2等作为参数就变得有点笨拙。我知道可以使用大括号表示法来表示线条魔术,如下所示:

!cp {foo} {bar}
Run Code Online (Sandbox Code Playgroud)

是否有类似的方法可以将大括号表示法与单元魔法一起使用?也许是这样的:

## in a python cell
foo = 'foo.txt'
bar = 'bar.txt'

## in another cell
%%bash <SOMETHING GOES HERE>
cp {foo} {bar}
Run Code Online (Sandbox Code Playgroud)

更新(2022 年 4 月 14 日):这可以通过定义一个新的魔法来完成,如此处所述

Ste*_*ood 8

尝试

!cp $foo $bar
Run Code Online (Sandbox Code Playgroud)

没有牙套。