将文件的文件大小存储在变量 Streamlit 中
Posted
技术标签:
【中文标题】将文件的文件大小存储在变量 Streamlit 中【英文标题】:storing file size of a file in variable Streamlit 【发布时间】:2022-01-09 06:36:18 【问题描述】:我正在尝试在 streamlit 中创建文件大小限制。为此,我需要将 a 的上传文件大小放入一个变量中。
在一个简单的 python 脚本中,我可以使用以下函数来获取文件大小。
os.path.getsize("filename.mp3")
但我无法在 streamlit 应用程序中执行此操作。
【问题讨论】:
【参考方案1】:在 streamlit 中,您可以使用文件上传器小部件 st.file_uploader
来上传文件:
uploaded_file = st.file_uploader("Choose a file")
要获取上传文件的大小,我们需要两个步骤:
使用 getvalue() 获取上传的文件字节数:
bytes_data = uploaded_file.getvalue()
使用python内置的len()函数获取字节大小:
file_size = len(bytes_data)
大家一起:
import streamlit as st
# upload file
uploaded_file = st.file_uploader("Choose a file")
if uploaded_file is not None:
# To read file as bytes:
bytes_data = uploaded_file.getvalue()
# get file size
file_size = len(bytes_data)
还有一个关于文件大小的说明,默认情况下,在 Streamlit 中,上传的文件限制为 200MB。您可以使用 server.maxUploadSize 配置选项进行配置。有关更多信息,您可以在那里阅读documentation
【讨论】:
以上是关于将文件的文件大小存储在变量 Streamlit 中的主要内容,如果未能解决你的问题,请参考以下文章
如何在streamlit中从用户读取csv文件并转换为pandas数据框
Streamlit:Session_state() 和 Multiapp() - 导航
如何将 <class 'streamlit.uploaded_file_manager.UploadedFile'> 类型的文件转换为 Ptr<cv::UMat>?