如何在Jupyter中使用手风琴将小部件的值传递给其他小部件?

时间:2019-08-20 18:54:28

标签: python jupyter-notebook widget

我是Jupyter的初学者。我试图弄清楚如何“传递”一个小部件的值成为另一个小部件的输入。

我有一个非常简单的Jupyter手风琴,带有2个标签。

  1. 第一个(“文件类型”)要求输入文件类型(在这种情况下,可以是* .las,*。csv和* .txt)。
  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'。

0 个答案:

没有答案