You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Streamlit中获取上传文件大小并存储到变量中

Streamlit读取上传文件大小及实现大小限制的方法

为什么os.path.getsize不生效

Streamlit的st.file_uploader组件返回的是UploadedFile类文件对象,仅存在于运行内存中,没有本地磁盘的真实存储路径,因此需要读取本地路径的os.path.getsize方法无法直接使用。

实现步骤

  • 第一步:调用上传组件获取文件对象
import streamlit as st

uploaded_file = st.file_uploader("请选择要上传的文件")
  • 第二步:读取文件大小
    直接调用UploadedFile自带的size属性即可获取文件大小,单位为字节:
if uploaded_file is not None:
    # 读取文件大小存入变量
    file_size = uploaded_file.size
    st.write(f"上传文件大小为:{file_size} 字节")

如果需要适配通用类文件对象的读取逻辑,也可以通过读取字节内容计算长度(大文件场景不推荐,会占用额外内存):

file_size = len(uploaded_file.getvalue())
  • 第三步:实现大小限制逻辑
    比如限制上传文件最大为10MB,参考逻辑如下:
MAX_SIZE = 10 * 1024 * 1024 # 10MB对应的字节数

if uploaded_file is not None:
    file_size = uploaded_file.size
    if file_size > MAX_SIZE:
        st.error("上传文件超出10MB大小限制,请重新选择")
    else:
        st.success("文件大小符合要求,可继续处理")
        # 后续文件处理逻辑

内容的提问来源于stack exchange,提问作者Hira Iftikhar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 10:24:03