如何从脚本运行IPython CELL魔术(%% magic)

dbf7pr2w  于 2022-12-17  发布在  Python
关注(0)|答案(1)|浏览(199)

Jupyter magic命令(从单个%开始,例如%timeit)可以使用How to run an IPython magic from a script (or timing a Python script)的答案在脚本中运行
然而,我找不到如何运行细胞魔术命令的答案,例如,在Jupyter中,我们可以做:

%%sh -s $task_name
#!/bin/bash
task_name=$1
echo This is a script running task [$task_name] that is executed from python
echo Many more bash commands here...................

如何编写这样的代码,使其可以从python脚本中执行?

gcuhipw9

gcuhipw91#

这可以使用文档不太完善的run_cell_magic来完成
run_cell_magic(magic_name,line,cell)执行给定的单元格幻数。参数:
魔术名称:str所需魔术函数的名称,不带'%'前缀。行:str将第一个输入行的其余部分作为单个字符串。cell:str单元格的主体,作为一个字符串(可能是多行)。
因此,转换为python脚本的代码为:

from IPython import get_ipython
task_name = 'foobar'
get_ipython().run_cell_magic('sh', '-s $task_name', '''
#!/bin/bash
task_name=$1
echo This is a script running task [$task_name] that is executed from python
echo Many more bash commands here...................
''')

相关问题