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

使用Streamlit开发UI时遇AttributeError: 'NoneType'无name属性问题求助

解决Streamlit中AttributeError: 'NoneType' object has no attribute 'name'的问题

问题原因

当用户还未上传文件时,st.file_uploader()会返回None,此时直接调用data_file.name就会触发该错误。

解决方法

增加对data_file是否存在的判断,只有当用户成功上传文件后,才执行文件写入操作,修改后的代码如下:

import os
import streamlit as st

data_file = st.file_uploader("Upload raw file", type=["docx"])

# 仅当文件上传成功后执行写入逻辑
if data_file is not None:
    save_path = os.path.join("/home/lungsang/Desktop/levelpack-UI/content/A0/1 docx-raw", data_file.name)
    with open(save_path, "wb") as f:
        f.write(data_file.getbuffer())
    st.success("文件上传保存成功!")

额外优化说明

  • 新增st.success提示可以让用户明确知道文件已成功保存,提升UI交互体验;
  • 拆分os.path.join为单独变量,代码可读性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 06:06:04