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

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

วิджชั่น Entry ใช้รับสตริงข้อความบรรทัดเดียวจากผู้ใช้

  • Text widget – แสดงข้อความหลายบรรทัดที่แก้ไขได้

  • Label widget – แสดงข้อความหนึ่งหรือหลายบรรทัดที่ผู้ใช้ไม่สามารถแก้ไขได้

นำเข้า tkinter, csv และสร้างหน้าต่างหลัก ชื่อหน้าต่างเอาต์พุตว่า "Data Entry" (ชื่อใดก็ได้สำหรับหน้าต่างเอาต์พุต) และสร้างสามฟังก์ชันตามเอาต์พุตที่ต้องการ ที่นี่ ฟังก์ชัน add, save และ clear ถูกสร้างขึ้นเพื่อทำให้ปุ่มทำงานได้อย่างสมบูรณ์

หลังจากให้อินพุตในหน้าต่าง คลิกปุ่ม add ฟังก์ชัน add จะแสดงกล่องข้อความ "Data successfully added" เช่นเดียวกัน เมื่อคลิกปุ่ม Save ฟังก์ชัน save จะแสดง messagebox "Saved successfully" การล้างอินพุตด้วยฟังก์ชัน clear จะล้างหน้าจอเอาต์พุตทั้งหมด

ตัวอย่าง

# นำเข้าไลบรารีที่จำเป็น
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 successfully")

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

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

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

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

Name, Age, Contact
Arjun, 25, 8790654321
John, 20, 9876543210