[英]How to process data before downloading using st.download_button with on_click callback?
[英]How to download various data from Streamlit to HDF5 file with `st.download_button`?
如何从 Streamlit 应用程序在一个.h5
文件中下载各种 numpy arrays?
h5py
库让您在将任何数据集附加到它之前创建一个h5py.File
。 在 Streamlit 环境中,您无法创建文件,那么如何将某些内容保存为这种文件格式?
这可以通过io.BytesIO
类型的临时“假”文件的中介来完成,Streamlit 可以使用st.download_button
组件处理并保存到文件中。
假设您有 2 个 numpy arrays 要保存到您的 HDF5 文件中:
import io
import h5py
import numpy as np
import streamlit
def prepare_bytes():
bio = io.BytesIO()
with h5py.File(bio, 'w') as f:
f['array_1'] = np.array([1, 2, 3, 4])
f['array_2'] = np.array([[1, 2], [3, 4]])
return bio
st.streamlit.download_button(
'Download as HDF5', data=prepare_bytes(),
file_name='data.h5', mime='application/x-hdf5'
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.