将文件的文件大小存储在变量 Streamlit 中

storing file size of a file in variable Streamlit

我正在尝试在 streamlit 中创建文件大小限制。为此,我需要将 a 的上传文件大小放入变量中。

在一个简单的 python 脚本中,我能够使用以下函数来获取文件大小。

os.path.getsize("filename.mp3")

但我无法在 streamlit 应用程序中执行此操作。

在 streamlit 中,您可以使用文件上传器小部件 st.file_uploader 来上传文件:

uploaded_file = st.file_uploader("Choose a file")

要获取上传文件的大小,我们需要两个步骤:

  1. 使用getvalue()获取上传的文件字节数:

     bytes_data = uploaded_file.getvalue()
    
  2. 通过使用 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