首页 > 解决方案 > 使用 pandas 将 tkinter 输入附加到 csv 文件

问题描述

我的第一次代码体验(尽量不要笑太多)。我正在尝试将条形码条目(作为 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()

输出:

日期、标题 1、标题 2、标题 3

16/04/21 00:43:43,<0x7f4c75ca3790 处的功能日志>,通过


请问如何将消息转换为输入数据?哦,也欢迎任何其他改进的想法!

非常感谢!

标签: pythonpandascsvtkinter

解决方案


推荐阅读