如何在Python面板中保存使用FileInput上传的多个文件?

问题描述 投票:0回答:1

我创建了一个工作代码来使用 FileInput 上传多个文件,并将其绑定到一个选择器以在上传后在仪表板中显示它们:

file_input = pn.widgets.FileInput(accept='.csv', sizing_mode='stretch_width',
                                  multiple=True)

def get_files(files = None):
    if file_input.filename == None:
        selector = pn.widgets.MultiSelect(
        name='Select files', sizing_mode='stretch_width',
        options=['Add your files here'])
        return selector
    else:
        breakpoint()
        selector = pn.widgets.MultiSelect(
        name='Select files', sizing_mode='stretch_width',
        options=file_input.filename)
        return selector

upload_files = pn.bind(get_files,file_input, watch= True)

我可以在那里看到文件名: (Pdb) file_input.文件名 ['test_5.csv'、'test_4.csv'、'test_3.csv'、'test_2.csv'、'test.csv']

但是保存方法仅适用于我只上传一个文件的情况:

(Pdb) 输出 = io.BytesIO() (Pdb)file_input.save(输出) *** 类型错误:FileInput 包含单个文件,但给出了文件名列表。请提供单个文件名或类似文件的对象。

我在阅读 FileInput 文档时找不到任何有用的内容。

有人给了我一个使用 FileInput 保存多个文件的工作方法。

python panel dashboard
1个回答
0
投票

我自己找到了解决方案,您需要提供文件列表,file_input.filename 工作正常。 我认为 io.BytesIO() 对象的列表也可以。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.