我是Jupyter的初学者。我试图弄清楚如何“传递”一个小部件的值成为另一个小部件的输入。
我有一个非常简单的Jupyter手风琴,带有2个标签。
第二个选项卡上将显示一个列表(“选择输入文件”),其中包含工作目录中与所需扩展名匹配的文件。
from ipywidgets import IntSlider, Text, Dropdown, Accordion
from os import listdir
from os.path import isfile
global MY_FILE_TYPE
def read_las():
pass
def read_csv():
pass
FILE_TYPES_DCT = {'.las': read_las,
'.csv': read_csv,
'.txt': read_csv}
file_type_wg = Dropdown(options=FILE_TYPES_DCT.keys(), description='File type:')
MY_FILE_TYPE = file_type_wg.value
files_in_input_folder = [f for f in listdir('.') if isfile(f)]
files_matching_type = [f for f in files_in_input_folder if MY_FILE_TYPE in f]
filename_wg = Dropdown(options=files_matching_type, description='Input file:')
accordion = Accordion(children=[file_type_wg, filename_wg])
accordion.set_title(0, 'File type')
accordion.set_title(1, 'Select input files')
accordion
在我看来,行“ MY_FILE_TYPE = file_type_wg.value
”可以设置一个全局变量,该变量可以在行“ files_matching_type = [f for f in files_in_input_folder if MY_FILE_TYPE in f]
”中使用。换句话说,“ file_type_wg.value
”可用作创建“ files_matching_type
”列表的“输入”,该列表可在“ filename_wg
”小部件的选项列表中使用。 / p>
现实中,这些小部件彼此独立。在查看了Jupyter Widgets 7.5.1文档之后,我觉得我必须以某种方式使用'interact
'或'interaction
'。