Python Tkinter – 如何将 Entry 字段中的数据导出到 CSV 文件?


Entry 小部件用于接收用户输入的单行文本字符串。

  • Text 小部件 − 显示可以编辑的多行文本。

  • Label 小部件 − 显示用户无法修改的一行或多行文本。

导入 *tkinter*、csv 并创建主窗口。将输出窗口命名为“数据输入”(输出窗口的任何名称)并根据您需要的输出创建三个函数。此处内置了添加、保存和清除功能,以使按钮能够正常工作。

在窗口中提供输入后,单击“添加”按钮。“添加”函数将显示消息框“数据已成功添加”。同样,单击“保存”按钮时,“保存”函数将显示消息框“已成功保存”。使用“清除”函数清除输入,它将清除整个输出屏幕。

示例

# Import the required libraries
from csv import *
from tkinter import *
from tkinter import messagebox

window=Tk()
window.title("Data Entry")
window.geometry("700x350")
main_lst=[]

def Add():
   lst=[name.get(),age.get(),contact.get()]
   main_lst.append(lst)
   messagebox.showinfo("Information","The data has been added successfully")

def Save():
   with open("data_entry.csv","w") as file:
      Writer=writer(file)
      Writer.writerow(["Name","Age","Contact"])
      Writer.writerows(main_lst)
      messagebox.showinfo("Information","Saved succesfully")

def Clear():
   name.delete(0,END)
   age.delete(0,END)
   contact.delete(0,END)

# 3 labels, 4 buttons,3 entry fields
label1=Label(window,text="Name: ",padx=20,pady=10)
label2=Label(window,text="Age: ",padx=20,pady=10)
label3=Label(window,text="Contact: ",padx=20,pady=10)

name=Entry(window,width=30,borderwidth=3)
age=Entry(window,width=30,borderwidth=3)
contact=Entry(window,width=30,borderwidth=3)

save=Button(window,text="Save",padx=20,pady=10,command=Save)
add=Button(window,text="Add",padx=20,pady=10,command=Add)
clear=Button(window,text="Clear",padx=18,pady=10,command=Clear)
Exit=Button(window,text="Exit",padx=20,pady=10,command=window.quit)

label1.grid(row=0,column=0)
label2.grid(row=1,column=0)
label3.grid(row=2,column=0)

name.grid(row=0,column=1)
age.grid(row=1,column=1)
contact.grid(row=2,column=1)
save.grid(row=4,column=0,columnspan=2)
add.grid(row=3,column=0,columnspan=2)
clear.grid(row=5,column=0,columnspan=2)
Exit.grid(row=6,column=0,columnspan=2)

window.mainloop()
print(lst)
print(main_lst)

输出

如果运行上述代码,它将显示以下输出窗口:

在 Entry 字段中插入数据,然后单击“添加”“保存”将数据保存到“data_entry.csv”文件中。

如果打开 CSV 文件,它将如下所示:

Name, Age, Contact

Arjun, 25, 8790654321

John, 20, 9876543210

更新于:2021年12月22日

4K+ 次浏览

启动您的 职业生涯

完成课程后获得认证

开始学习
广告
© . All rights reserved.