我想在一个函数内run a specific jupyter code cell
。我发现执行单元格的唯一选择是:
IPython.display.Javascript("Jupyter.notebook.execute_cells([4])")
这是可行的,但是一旦我将代码实现到python函数中,它就不再做任何事情:
if version_val == ():
IPython.display.Javascript("Jupyter.notebook.execute_cells([4])")
这是我尝试执行的全部代码(每个单元格都标记在一个新块中):
1:
import os
import ipywidgets as widgets
import IPython
from IPython.display import Javascript
import plotly as py
import plotly.graph_objs as go
2:
if os.path.exists("Test"):
test_exists = True
else:
test_exists = False
print("Found no folder named 'Test'!")
if test_exists:
subfolder = os.listdir("Test")
3:
enter2 = widgets.Button(description = "Enter")
version_val = ()
def update_d(self):
IPython.display.clear_output()
global dt
dt = dropdown_testcase.value
global subsubfolder
subsubfolder = os.listdir(r"Test\{}".format(dt))
global dropdown_version
dropdown_version = widgets.SelectMultiple(options=subsubfolder, description="Mark Both <br> for <br>Comparison")
display(dropdown_version)
enter2.on_click(start_all)
display(enter2)
def start_all(self):
global version_val
version_val = dropdown_version.value
if version_val == ():
print("Choose your data !")
if version_val == ('Files',):
IPython.display.Javascript("Jupyter.notebook.execute_cells([3])")
if test_exists:
dropdown_testcase = widgets.Dropdown(options=subfolder, description="Testcase")
enter = widgets.Button(description = "Enter")
enter.on_click(update_d)
display(dropdown_testcase)
display(enter)
4:
x = [0,1,2,3]
y = [0,1,2,3]
trace = [go.Scatter(x=x, y=y, mode="markers")]
fig = go.Figure(data=trace)
py.offline.iplot(fig)
我需要在最后一个单元格中执行绘图。
它需要您在Notebook文件夹中创建一个文件夹“ Test”,以及一个名为“任意”的子文件夹。并且在该子文件夹中必须有一个名为“文件”的子文件夹。
有人知道如何解决吗?
谢谢!
答案 0 :(得分:0)
(我的回答与如何run a specific jupyter code cell
有关)
在Jupyter笔记本上,您可以使用In[]
和Out[]
访问单元格的内容。这是一个简单的代码可以尝试:
假设代码单元[13]已经完成一些计算:
In [13]: 1+2+3+4+5
Out [13]: 15
在同一笔记本中的某个位置,您可以像这样访问和运行该单元格中的代码:
print("Result from execution the cells above:", eval(In[13]), Out[13])
您应该得到的结果为
('Result from execution the cell above:', 15, 15)
希望这会有所帮助。