streamlit 文件操作

streamlit 文件操作

stremalit读取文件以及保存文件

import streamlit as st

# 设置页面标题
st.title('文件上传与保存示例')

# 文件上传
uploaded_file = st.file_uploader("请选择文件进行上传", type=None)

# 检查是否有文件上传
if uploaded_file is not None:
    # 显示文件信息
    st.write(f"文件名: {uploaded_file.name}")
    st.write(f"文件大小: {uploaded_file.size} 字节")
    
    # 获取文件字节内容
    file_bytes = uploaded_file.read()
    
    # 将文件保存到本地
    save_path = f"./{uploaded_file.name}"
    with open(save_path, "wb") as f:
        f.write(file_bytes)
    
    st.success(f"文件已保存到: {save_path}")

下载文件

  file_path="test_api.xlsx"
  with open(file_path,'rb') as f:
      st.download_button(label='下载模板', data=f, file_name='接口用例模板.xlsx')

处理数据转换成下载文件

在 Streamlit 中,st.download_button 是一个非常方便的组件,用于让用户从应用程序中直接下载文件。以下是实现下载本地 CSV 文件的具体步骤。
实现步骤
1.导入必要的库 首先需要导入 Streamlit 和 Pandas 等相关库。
2.准备数据 创建或加载一个 Pandas DataFrame,作为需要下载的数据。
3.转换为 CSV 格式 使用 to_csv() 方法将 DataFrame 转换为 CSV 格式,并编码为字节流。
4.创建下载按钮 使用 st.download_button 提供下载功能,设置文件名和 MIME 类型。
以下是完整的代码实现:


import streamlit as st
import pandas as pd

# 创建示例数据
data = {
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 35],
"City": ["New York", "Los Angeles", "Chicago"]
}
df = pd.DataFrame(data)

# 将 DataFrame 转换为 CSV 字节流
@st.cache_data
def convert_to_csv(dataframe):
return dataframe.to_csv(index=False).encode('utf-8')

csv_data = convert_to_csv(df)

# 创建下载按钮
st.download_button(
label="下载 CSV 文件",
data=csv_data,
file_name="example.csv",
mime="text/csv"
)

关键点说明
1.缓存数据转换 使用 @st.cache_data 装饰器缓存数据转换过程,避免重复计算,提高性能。
2.设置 MIME 类型 MIME 类型设置为 "text/csv",确保文件以正确的格式下载。
3.文件名自定义 file_name 参数允许自定义下载文件的名称,例如 "example.csv"。
4.内存优化 确保文件大小适中(建议小于几百 MB),以避免内存占用过高。
通过以上方法,用户可以轻松地从 Streamlit 应用中下载本地生成的 CSV 文件。这种功能非常适合用于数据导出、报告生成等场景。

读取文件以及保存文件参考地址:
https://blog.csdn.net/u014158430/article/details/142515530
https://www.cnblogs.com/wang_yb/p/18630748
https://www.jiuaidu.com/o/article/2992909.html
下载文件参考地址:
https://cloud.tencent.com/developer/ask/sof/107563653

posted @ 2025-08-27 11:18  赏金猎人小熊  阅读(35)  评论(0)    收藏  举报