Python 使用pandas将tkinter输入附加到csv文件

Python 使用pandas将tkinter输入附加到csv文件,python,pandas,csv,tkinter,Python,Pandas,Csv,Tkinter,我的第一次代码体验(尽量不要笑得太多)。我试图将条形码条目(作为HID,就像键盘一样)写入csv文件-尽管显示输入数据标签的功能可以工作,但当我查看csv文件时,我无法捕获输入 我的代码: import pandas as pd from tkinter import * import csv from datetime import datetime df = pd.read_csv("new.csv") data = [] dt = datetime.now() d

我的第一次代码体验(尽量不要笑得太多)。我试图将条形码条目(作为HID,就像键盘一样)写入csv文件-尽管显示输入数据标签的功能可以工作,但当我查看csv文件时,我无法捕获输入

我的代码:

import pandas as pd
from tkinter import * 
import csv
from datetime import datetime

df = pd.read_csv("new.csv")
data = []

dt = datetime.now()
dt_string = dt.strftime('%d/%m/%y %H:%M:%S')

root = Tk()
root.title ("Robot Interface")
root.geometry ("600x300")
root.configure(background="sky blue")


def acknowledge(event):
    acknowledge_label = Label(root, 
        text=" Data Logged \n " + dt_string 
        + "\n Operator ~ " + textBoxName.get()
        + "\n Item ~ "+ textBoxJob.get() 
        + "\n Ser' No' ~ "+ textBoxSN.get() 
        + "\n Command Sent To Robot", 
        bg="sky blue", fg="red", anchor="e", justify=LEFT)
    acknowledge_label.place(x=390, y=20),
    
def log():
    val1 = textBoxName.get()
    val2 = textBoxJob.get()
    val3 = textBoxSN.get()
    data = [val1, val2, val3, dt_string]
    print(data)
    
    
    #textBoxName.delete(0, END)
    #textBoxJob.delete(0, END)
    #textBoxSN.delete(0, END)
   


#NAME
labelName = Label(root, text = "Name:", bg="sky blue")
labelName.place(x=10,y=20)

textBoxName = Entry (root, width=30, borderwidth=2)
textBoxName.place(x=80, y=20)
textBoxName.focus_set()

#JOB ID
labelJob = Label(root, text = "Job ID:", bg="sky blue")
labelJob.place(x=10, y=70)

textBoxJob = Entry (root, width=30, borderwidth=2)
textBoxJob.place(x=80, y=70)

#SERIAL NUMBER
labelSN = Label(root, text = "Ser No.", bg="sky blue")
labelSN.place(x=10, y=120)

textBoxSN = Entry (root, width=30, borderwidth=2)
textBoxSN.place(x=80, y=120)



#SUBMIT
ButtonSubmit = Button(root, text="SUBMIT", command=acknowledge)
ButtonSubmit.bind("<Return>", acknowledge)
ButtonSubmit.bind("<Button-1>", acknowledge)

ButtonSubmit.place(x=80, y=170)

df.to_csv('new.csv',index=False)
newrow=(dt_string, log,"pass")


with open('new.csv', 'a') as appendobj:
    append = csv.writer(appendobj)
    append.writerow (newrow)
textBoxName 

#CONFIG
ButtonConfig = Button(root, text="Config Page")
ButtonConfig.place(x=80, y=240)

root.mainloop()
将熊猫作为pd导入
从tkinter进口*
导入csv
从日期时间导入日期时间
df=pd.read\u csv(“new.csv”)
数据=[]
dt=datetime.now()
dt_string=dt.strftime(“%d/%m/%y%H:%m:%S”)
root=Tk()
root.title(“机器人接口”)
根几何(“600x300”)
root.configure(background=“天蓝”)
def确认(事件):
确认标签=标签(根、,
text=“记录的数据\n”+dt\u字符串
+“\n Operator~”+textBoxName.get()
+“\n Item~”+textBoxJob.get()
+“\n序列号”~“+textBoxSN.get()
+“\n已向机器人发送命令”,
bg=“天蓝色”,fg=“红色”,anchor=“e”,justify=左侧)
确认标签位置(x=390,y=20),
def log():
val1=textBoxName.get()
val2=textBoxJob.get()
val3=textBoxSN.get()
数据=[val1,val2,val3,dt_字符串]
打印(数据)
#textBoxName.delete(0,结束)
#textBoxJob.delete(0,结束)
#textBoxSN.delete(0,结束)
#名字
labelName=标签(根,text=“Name:”,bg=“天蓝色”)
labelName.place(x=10,y=20)
textBoxName=条目(根,宽度=30,边框宽度=2)
textBoxName.place(x=80,y=20)
textBoxName.focus_set()
#工作ID
labelJob=Label(root,text=“作业ID:”,bg=“天蓝色”)
labelJob.place(x=10,y=70)
textBoxJob=Entry(根,宽度=30,边框宽度=2)
textBoxJob.place(x=80,y=70)
#序列号
labelSN=标签(根,text=“序列号”,bg=“天蓝色”)
标签n.位置(x=10,y=120)
textBoxSN=条目(根,宽度=30,边框宽度=2)
textBoxSN.place(x=80,y=120)
#提交
按钮提交=按钮(根,text=“提交”,命令=确认)
按钮提交绑定(“,确认)
按钮提交绑定(“,确认)
按钮提交位置(x=80,y=170)
df.to_csv('new.csv',index=False)
newrow=(dt_字符串,log,“pass”)
以open('new.csv','a')作为附录对象:
append=csv.writer(appendobj)
append.writerow(新行)
textBoxName
#配置
ButtonConfig=按钮(根,text=“配置页”)
按钮配置位置(x=80,y=240)
root.mainloop()
输出:

日期,校长1,校长2,校长3

16/04/21 00:43:43,通过


我怎样才能把信息转换成输入数据? 哦,还有其他改进的想法,欢迎


非常感谢

你需要我们帮什么忙?“我无法捕获输入。”:为什么?例如,如果我在每个tkinter文本框中输入了x、y和z值,则acknowledge函数会在GUI的acknowledge_标签中正确显示这些值。但是,我也想将文本框输入也发布到csv文件中。如果我打开csv文件,而不是在列中看到“x”、“y”和“z”,我会看到“,”-希望这能让我的请求更清楚一些…很抱歉,它写得不好
def log():
就是
log
的意思。这就是它所展示的。您期望的输出是什么。我试图做的是将tkinter文本框中的条目附加到csv文件的最后一行。在这个例子中,x,y和zThanks!我会试着回复的。儿子现在劫持了我的电脑(通过电话回复)