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

如何从Streamlit实例中导出本地生成的CSV数据?

解决方案

一、用.gitignore避免GitHub覆盖数据

  • 在项目根目录新建.gitignore文件,把CSV文件的路径或文件名加进去即可,示例:
    # 忽略单个CSV文件
    user_data.csv
    # 忽略整个数据文件夹
    data/
    
  • 要是之前已经把CSV提交到GitHub了,得先把它从仓库的追踪列表里移除(本地文件不会删除),执行以下命令:
    git rm --cached user_data.csv
    git commit -m "停止追踪CSV文件"
    git push
    
    之后再用.gitignore规则,GitHub就不会再同步这个文件,自然不会出现覆盖问题。

二、数据获取方案

1. 本地运行的Streamlit实例

  • 先查代码里的写入路径:找到pd.to_csv()或者open()函数里的路径,比如代码写的是df.to_csv("data.csv"),文件就在项目根目录;如果用了绝对路径比如/Users/xxx/streamlit_app/data.csv,直接去该路径查找。
  • 实在找不到,就在代码里加一行调试代码,运行后看输出的绝对路径:
    import os
    print("CSV文件绝对路径:", os.path.abspath("data.csv"))
    
    终端或者Streamlit的日志里会显示具体位置,直接去该路径取文件即可。

2. 部署在服务器/Streamlit Cloud的实例

  • Streamlit Cloud:实例运行时写入的文件存在临时存储里,一旦实例重启就会清空。如果实例还在运行,赶紧加个下载按钮导出数据,代码示例:
    import streamlit as st
    import pandas as pd
    
    # 读取本地生成的CSV
    df = pd.read_csv("data.csv")
    # 添加下载按钮
    st.download_button(
        label="下载CSV数据",
        data=df.to_csv(index=False),
        file_name="saved_data.csv",
        mime="text/csv"
    )
    
    重新部署后打开应用,点击按钮就能把数据下载到本地。
  • 其他服务器:通过SSH连接到服务器,找到代码里的写入路径,用scp命令把文件拷回本地:
    scp 你的用户名@服务器IP:/服务器上的CSV路径 /本地保存路径/
    

三、数据恢复方案

  • 本地环境:如果是误删,先查看回收站/垃圾桶;要是被覆盖了,用本地数据恢复工具(比如Windows的Recuva、Mac的Disk Drill)扫描对应的磁盘分区试试。
  • 部署环境:如果实例已经重启,临时存储里的数据基本无法找回;要是之前有自动备份(比如同步到云盘),从备份里恢复;实例还在运行的话,立刻用上面的下载方法导出数据,别等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:32:57