Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Tkinter – วิธีการส่งออกข้อมูลจาก Entry Fields ไปยังไฟล์ CSV?


วิดเจ็ตรายการใช้เพื่อยอมรับสตริงข้อความบรรทัดเดียวจากผู้ใช้

  • วิดเจ็ตข้อความ − แสดงข้อความหลายบรรทัดที่สามารถแก้ไขได้

  • วิดเจ็ตป้ายกำกับ − แสดงข้อความตั้งแต่หนึ่งบรรทัดขึ้นไปที่ผู้ใช้แก้ไขไม่ได้

กำลังนำเข้า 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)

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะแสดงหน้าต่างผลลัพธ์ต่อไปนี้ -

Python Tkinter – วิธีการส่งออกข้อมูลจาก Entry Fields ไปยังไฟล์ CSV?

แทรกข้อมูลในช่องรายการ และคลิก "เพิ่ม" และ "บันทึก" เพื่อบันทึกข้อมูลใน "data_entry.csv" ไฟล์.

Python Tkinter – วิธีการส่งออกข้อมูลจาก Entry Fields ไปยังไฟล์ CSV?

หากคุณเปิดไฟล์ CSV จะมีลักษณะดังนี้ -

Name, Age, Contact

Arjun, 25, 8790654321

John, 20, 9876543210