如何使用Streamlit实现本地Word文件下载功能
优化后的本地文件下载按钮实现
你的代码可以简化优化,无需额外解析文档再保存,直接读取本地文件字节流即可实现下载功能,同时修正细节问题:
优化后代码
import streamlit as st # 用with语句自动管理文件资源,避免遗漏关闭操作 with open('Analysis.docx', 'rb') as f: file_bytes = f.read() st.download_button( label="点击下载报告", data=file_bytes, file_name="Report.docx", mime="application/vnd.openxmlformats-officedocument.wordprocessingml.document" )
关键优化细节
- 移除冗余操作:无需借助
python-docx解析文档,直接读取原始字节流即可,提升运行效率 - 优化文件操作:使用
with语句自动处理文件的打开与关闭,避免资源泄漏 - 修正MIME类型:docx文件的标准MIME类型为
application/vnd.openxmlformats-officedocument.wordprocessingml.document,确保浏览器正确识别文件类型 - 简化逻辑:无需判断文档对象,直接生成下载按钮即可
内容的提问来源于stack exchange,提问作者Mann J
相关产品推荐
相关产品推荐

