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

如何在Streamlit中将用户输入保存为可每日更新的可下载CSV文件?

问题解答

1. 能不能把用户输入保存成可下载的CSV,还能在新增条目时自动更新?

当然可以。每次用户提交表单后,新条目会被追加到CSV文件里(文件不存在的话会自动创建),同时页面会提供下载按钮,随时能拿到包含所有历史数据的最新CSV。

2. 需要预先上传空白CSV文件吗?

不需要。代码会自动检查文件是否存在,不存在时会直接创建带表头的新文件,不用提前准备空白文件。


修改后的完整代码

import streamlit as st
import pandas as pd
import os

# 定义CSV文件存储路径
CSV_FILE = "feedback_data.csv"

with st.form('Feedback_Form'):
    st.header('Feedback Form')

    col1, col2 = st.columns(2)
    with col1:
        name = st.text_input('Enter product name')
        how_many = st.slider('Please Select Quantity', 0, 10, 5)
    with col2:
        date = st.date_input('Enter Date')
        time = st.radio('Select time to nearest label time', ('7.30', '7.45', '8.00', '8.10', '8.15'))

    submit_button = st.form_submit_button('Submit')

if submit_button:
    # 把提交的数据整理成DataFrame格式
    new_data = {
        "Product Name": [name],
        "Quantity": [how_many],
        "Date": [date],
        "Time": [time]
    }
    new_df = pd.DataFrame(new_data)

    # 处理CSV文件:存在则追加数据,不存在则创建新文件
    if os.path.exists(CSV_FILE):
        existing_df = pd.read_csv(CSV_FILE)
        updated_df = pd.concat([existing_df, new_df], ignore_index=True)
    else:
        updated_df = new_df

    # 保存更新后的数据到CSV
    updated_df.to_csv(CSV_FILE, index=False)

    # 显示提交结果
    st.success("提交成功!")
    st.write('**Enter product name:**', name, '**Enter Date:**', date,
             '**How Many:**', how_many, '**Time:**', time)

# 显示下载按钮,只要CSV存在就能下载最新数据
if os.path.exists(CSV_FILE):
    with open(CSV_FILE, "rb") as f:
        st.download_button(
            label="下载所有反馈数据",
            data=f,
            file_name="feedback_data.csv",
            mime="text/csv"
        )

关键代码说明

  • 用pandas处理CSV的读写操作,os.path.exists()判断文件是否存在
  • 提交表单时,新数据会被追加到已有数据后面,保证CSV自动更新
  • 页面底部的下载按钮始终指向最新的CSV文件,用户随时可以获取完整数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:25:28