python - 单击一个按钮以将输入字段保存在 Tkinter 中的 csv 文件中
问题描述
我正在创建一个简单的 GUI 界面,希望使用 Tkinker 将输入数据保存在 csv 文件中。我已经完成了界面,但我在提交按钮保存数据时遇到了挑战。我需要帮助,所以当我单击提交按钮时,它会将数据保存在 csv 文件中。这是我的代码
from tkinter import *
import csv
import os
window = Tk()
window.title("BUSINESS REGISTRATION ")
window.geometry('500x450')
# Field name
bNo = Label(window, text="BusinessNo :")
bName = Label(window, text="BusinessName :")
# Packing fileds to show on the GUI
bNo.grid(row=1, column=2)
bName.grid(row=2, column=2)
# Varibales for storing data
businessNo = StringVar
businessName = StringVar
# Creating entry fields
entry1 = Entry(window, textvariable=businessNo)
entry2 = Entry(window, textvariable=businessName)
# Packing entry fields
entry1.grid(row=1, column=3)
entry2.grid(row=2, column=3)
# creating csv file
file_exists = os.path.exists('BUSINESS REGISTRATION.csv')
with open('BUSINESS REGISTRATION.csv', 'a', encoding='UTF8') as f:
writer = csv.writer(f)
if file_exists:
writer.writerow(businessNo)
else:
writer.writerow(businessName)
writer.writerow(businessNo)
# submit function
def callback():
mylabel = Label(window, )
mylabel.grid()
# Creating a submit button
submit_Button = Button(window, text="Submit", command=callback)
submit_Button.grid(row=3, column=3)
# creating a csv file
window.mainloop()
解决方案
您可以使用 pandas 然后将您的数据转换为 DatFrame 类型,然后将其保存为 csv 或任何其他扩展名
import pandas as pd #install pandas in your pc
def save_to_csv(data):
data_to_save={'name':data[0],'age':data[1]}
df=pd.DataFrame(data_to_save)
df.to_csv('your path/data.csv')
data=[('messi','ronaldo','neymar'),(34,35,30)] #this exemple of data has name and age u can put any thing
save_to_csv(data) # i call the function
推荐阅读
- javascript - 计算器 - 点击按钮不起作用
- workspace - 在开发工作区中创建的挂起变更集出现在发布工作区中
- performance - 离子标签的性能问题
- scala - 在 scala intellij IDE 中加载文件
- apache-kafka - 当我退回代理时,Apache Kafka 失去了一些消费者补偿
- javascript - Woocommerce 3 中的自定义加减数量按钮
- jquery - selected() 用于使用 jquery load() 加载的动态内容
- extjs - ExtJS 6.6.0 现代工具包 MultiSlider
- javascript - 如何用 chai 断言 css 属性
- php - 控制器“JMS\TranslationBundle\Controller\TranslateController”具有必需的构造函数参数并且容器中不存在