如何用Tkinter制作GUI实现用户信息写入CSV文件
Tkinter 实现输入信息保存到CSV的图形界面
下面是完整的实现代码,包含图形界面和CSV写入逻辑,直接运行即可使用:
import tkinter as tk from tkinter import messagebox import csv from datetime import datetime def save_to_csv(): # 获取输入框内容 name = entry_name.get().strip() message = entry_message.get().strip() # 验证输入是否为空 if not name or not message: messagebox.showerror("错误", "姓名和消息不能为空!") return # 获取当前日期时间,格式为YYYY-MM-DD HH:MM:SS current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 准备要写入的数据行 data_row = [name, current_time, message] # 处理CSV文件写入 try: # 以追加模式打开文件,编码设为utf-8避免乱码 with open("messages.csv", "a+", newline="", encoding="utf-8") as csv_file: csv_writer = csv.writer(csv_file) # 将文件指针移到开头,检查是否为空(无表头) csv_file.seek(0) has_header = csv_file.read(1) != "" # 如果文件为空,先写入表头 if not has_header: csv_writer.writerow(["姓名", "日期时间", "消息"]) # 写入数据行 csv_writer.writerow(data_row) # 清空输入框并提示成功 entry_name.delete(0, tk.END) entry_message.delete(0, tk.END) messagebox.showinfo("成功", "信息已保存到CSV文件!") except Exception as e: messagebox.showerror("错误", f"保存失败:{str(e)}") # 创建主窗口 root = tk.Tk() root.title("消息保存工具") root.geometry("400x250") # 设置窗口大小 # 创建界面元素 label_name = tk.Label(root, text="姓名:") label_name.pack(pady=5) entry_name = tk.Entry(root, width=40) entry_name.pack(pady=5) label_message = tk.Label(root, text="消息:") label_message.pack(pady=5) entry_message = tk.Entry(root, width=40) entry_message.pack(pady=5) save_btn = tk.Button(root, text="保存到CSV", command=save_to_csv, width=15) save_btn.pack(pady=20) # 运行主循环 root.mainloop()
关键功能说明
- 输入验证:点击保存前会检查姓名和消息是否为空,避免无效数据写入
- 自动时间戳:无需手动输入日期时间,程序会自动获取当前系统时间并格式化
- CSV处理:首次运行会自动创建
messages.csv文件并写入表头;后续每次保存都会追加新数据行 - 用户反馈:操作成功或失败都会弹出提示框,清空输入框方便继续输入
使用时直接运行代码,输入姓名和消息后点击按钮,数据就会以姓名,日期时间,消息的格式保存到同目录下的messages.csv文件中。
内容的提问来源于stack exchange,提问作者Danxs
相关产品推荐
相关产品推荐

