将Entry Widget中的输入写入CSV(tkinter)

时间:2016-02-22 11:37:50

标签: python python-3.x tkinter

我想要的是一个简单的Widget,它将条目中输入的值与日期和时间一起添加到cvs文件中,如下所示:

2016-02-22 11:40    12  
2016-02-22 11:43    549
2016-02-22 11:44    321

我的代码到目前为止:

from tkinter import *
import csv
import datetime

def enter_button():
    now = datetime.datetime.now()
    amount = e1.get()# That is where I thought I should get the Input from the widget
    with open('File.csv', 'a') as f:
        w = csv.writer(f,dialect='excel-tab')
        w.writerow([now.strftime("%Y-%m-%d %H:%M"), amount]) # write Date/Time and the value
f.close()

master = Tk()
e1 = Entry(master)
Label(master, text='Enter Number Here').grid(row=0)
myButton=Button(master,text='Enter',command=enter_button())
e1.grid(row=0,column=1)
myButton.grid(row=1,column=0)
mainloop()

代码运行,我的小部件看起来像这样: enter image description here

问题是Entry字段中的值没有写入cvs文件....我只得到按下按钮(myButton)的日期和时间.... 这些都写入.csv文件。 那么我错过了从Entry字段到函数(enter_button)的值? 感谢

1 个答案:

答案 0 :(得分:2)

原因是您正在调用enter_button函数

myButton = Button(master, text='Enter',command=enter_button())
                                                          ^^^ 

您需要为command选项指定函数名称。

myButton = Button(master, text='Enter', command=enter_button)

此外,您不需要致电f.close(),因为with声明会为您解决此问题。