我想在我的ipython Notebook中运行一个bash脚本,并将输出保存为python变量中的字符串,以便进一步操作.基本上我想将bash魔法的输出传递给变量,例如输出如下:
%%bash
some_command [options] foo bar
Run Code Online (Sandbox Code Playgroud) 我想从 Python 访问笔记本中另一个单元格的文本内容,以便我可以将其提供给单元测试脚本,无论它是否已执行。看起来这应该是可能的,但是我在 IPython 内核中找不到合适的 API 来做到这一点。想法?
这个问题提出了同样的问题,但除非必须,否则我真的不想使用魔法。理想情况下,工作流程是“选择小部件选择”,然后是“单击小部件”以运行测试。
我正在和一些学生一起教他们 Python,在过去,当我这样做时,我设置了一堆单元测试,然后提供了有关如何通过 shell 脚本运行测试的说明。但是,我正在与一些在家中无法使用计算机的学生一起工作,因此我决定尝试使用 Jupyter 笔记本环境(通过 mybinder.org)让他们做同样的事情。我已经通过一些 ipywidgets 和一个帮助脚本来运行大部分代码,该脚本在一些任意代码集上运行单元测试。
line-magic命令%load
将给定文件的内容加载到当前单元格中,例如,执行:
[cell 1] %load hello_world.py
Run Code Online (Sandbox Code Playgroud)
...将单元格转换为:
[cell 1] # %load hello_world.py
print("hello, world")
Run Code Online (Sandbox Code Playgroud)
我想创建一个%load_next
line-magic 命令,它将将此文件加载到下一个单元格中。例如,在以下笔记本中执行单元 1:
[cell 1] %load_next hello_world.py
[cell 2] print("hello, cruel world") # original content
Run Code Online (Sandbox Code Playgroud)
...将保持单元格 1 不变并使用新内容更新单元格 2:
[cell 1] %load_next hello_world.py
[cell 2] print("hello, world")
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这个:
[cell 1] %load hello_world.py
Run Code Online (Sandbox Code Playgroud)
但它会在当前单元格和下一个单元格之间插入内容:
[cell 1] %load_next hello_world.py
[cell 2] print("hello, world")
[cell 3] print("hello, cruel world") # original content
Run Code Online (Sandbox Code Playgroud)
是否可以使其替换下一个单元格,或在插入下一个单元格之前删除下一个单元格?