如何在Python心理健康聊天机器人代码中存储用户输入的响应数据
如何在心理健康聊天机器人中存储用户输入?
嘿,我来帮你搞定这个存储用户输入的需求~针对你的心理健康聊天机器人代码,我给你几个简单实用的方案,都是直接能套进去用的:
方法1:用文本文件存储(最简单直观)
这种方式适合快速记录,每条输入会追加到文件末尾,不会覆盖之前的内容,还可以加上时间戳方便追踪:
print("Hey Welcome To Mental health chatbot") import time from datetime import datetime # 用来记录每条输入的时间,可选但很实用 time.sleep(1) a = input("So how are you feeling today ").strip().upper() # 核心存储代码:以追加模式打开文本文件 with open("user_responses.txt", "a", encoding="utf-8") as f: timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") f.write(f"{timestamp} - 用户输入: {a}\n") # 原有的逻辑判断,我帮你优化成更简洁的写法啦 if a in ["NICE", "GOOD", "I AM GOOD"]: print("That's nice to hear") elif a in ["BAD", "NOT NICE", "IT WAS A BAD DAY"]: print("Oh")
运行后,你会在代码同目录下看到user_responses.txt文件,里面会像这样记录:
2024-05-20 14:30:00 - 用户输入: GOOD
2024-05-20 14:32:15 - 用户输入: BAD
方法2:用CSV文件存储(适合后续数据分析)
如果之后你想统计用户的情绪分布,CSV格式会更方便——它是结构化的表格形式,能用Excel或者Python的数据分析工具直接打开:
print("Hey Welcome To Mental health chatbot") import time import csv from datetime import datetime time.sleep(1) a = input("So how are you feeling today ").strip().upper() # 核心存储代码:写入CSV文件 with open("user_responses.csv", "a", newline="", encoding="utf-8") as csvfile: # 定义表头字段 fieldnames = ["timestamp", "user_input"] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) # 如果是第一次写入,先添加表头 csvfile.seek(0, 2) if csvfile.tell() == 0: writer.writeheader() # 写入当前的用户输入和时间 writer.writerow({ "timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "user_input": a }) # 优化后的逻辑判断 if a in ["NICE", "GOOD", "I AM GOOD"]: print("That's nice to hear") elif a in ["BAD", "NOT NICE", "IT WAS A BAD DAY"]: print("Oh")
生成的CSV文件会有清晰的表头,内容大概是:
| timestamp | user_input |
|---|---|
| 2024-05-20 14:35:00 | GOOD |
| 2024-05-20 14:36:20 | BAD |
额外小提示:临时会话存储(非持久化)
如果只是想在聊天会话期间暂时保存用户输入(程序关闭后数据就消失),可以用一个列表来存:
# 初始化一个空列表来存会话中的输入 user_inputs = [] print("Hey Welcome To Mental health chatbot") import time time.sleep(1) a = input("So how are you feeling today ").strip().upper() user_inputs.append(a) # 把当前输入加到列表里 # 之后可以随时查看列表里的所有输入 print("你今天的输入记录:", user_inputs) # 原有的逻辑判断 if a in ["NICE", "GOOD", "I AM GOOD"]: print("That's nice to hear") elif a in ["BAD", "NOT NICE", "IT WAS A BAD DAY"]: print("Oh")
内容的提问来源于stack exchange,提问作者aarush
相关产品推荐
相关产品推荐

