ipywidgets - widgets.FileUpload,更新CSV文件读取CSV文件

Posted

技术标签:

【中文标题】ipywidgets - widgets.FileUpload,更新CSV文件读取CSV文件【英文标题】:ipywidgets - widgets.FileUpload, updated CSV file read the CSV file 【发布时间】:2021-07-29 18:13:48 【问题描述】:

我正在使用 jupyterhub 并托管 .ipynb 文件并托管在服务器上。我有从 localdrive 文件上传 CSV 并为其他数据帧任务读取相同内容的用例。

uploader = widgets.FileUpload(
    accept='*.csv',  # Accepted file extension e.g. '.txt', '.pdf', 'image/*', 'image/*,.pdf'
    multiple=False  # True to accept multiple files upload else False
)

display(uploader)


[input_file] = uploader.value
print(input_file)
pd.read_csv(input_file)

print(input_file) - 正在打印 Test.csv,这是 CSV 文件名 我可以打印 [input_file] 但 `pd.read_csv(input_file)' 抛出错误

FileNotFoundError: [Errno 2] No such file or directory: 'Test.csv'

不确定 CSV 是否已上传,我如何读取该数据。请帮忙。

【问题讨论】:

您可以添加到问题中并复制并粘贴您print(input_file)时显示的内容 @ac24 我已经更新了打印结果的问题,正确打印了 CSV 文件名。 【参考方案1】:

我没有你确切的 ipywidgets 版本,但你可以试试这个:

input_file = list(uploader.value.values())[0]
content = input_file['content']
content = io.StringIO(content.decode('utf-8'))
df = pd.read_csv(content)

【讨论】:

谢谢大家的帮助,我已经解决了这个问题 没问题。顺便说一句,使用 [input_file]=... 在右侧使用单值列表可能很好,但是您在单个字典上使用它,这对于维护代码的其他任何人来说都是非常意外的:比较 [result] = ['a'] 和 @ 987654324@,两者都以result = 'a' 结尾,但第一个比第二个更令人期待。

以上是关于ipywidgets - widgets.FileUpload,更新CSV文件读取CSV文件的主要内容,如果未能解决你的问题,请参考以下文章

如何让 ipywidgets 在 Jupyter Lab 中工作?

使用 ipywidgets 按钮返回 DataFrame

将ipywidget按钮对齐到中心

使用线程定期更新的 Ipywidget

ipywidgets - widgets.FileUpload,更新CSV文件读取CSV文件

ipywidgets:如何在两列中组织滑块