我打算编写一个GUI来导入URL数据,然后处理这些数据,所以我有 2 个按钮。下面是我的代码。
from Tkinter import *
root=Tk()
root.title('Videos Episodes')
root.geometry('500x300')
def OpenFile(): # import URLs data from local machine
paths=tkFileDialog.askopenfilename()
return paths
def read_files(paths): #read data from the directory from OpenFile
with open(paths) as myfile:
return data
Button(root,text='Input',command=OpenFile).pack()
Button(root,text='Process',command=read_files).pack()
root.mainloop()
我的问题是,当单击"进程"按钮时,发生了错误:Tkinter 回调回溯中的异常(最近一次调用):
File "C:Python27liblib-tkTkinter.py", line 1532, in __call__
return self.func(*args) TypeError: read_files() takes exactly 1 argument (0 given)
如何修复该错误?
如果要传递参数(未指定内容),请使用 lambda:
Button(root,text='Process',command=lambda: read_files('whatever')).pack()
也许,这就是你想做的(?
Button(root,text='Process',command=lambda: read_files(OpenFile())).pack()
或者,您打算将OpenFile
的结果(通过单击另一个按钮)存储在全局变量中,并将其作为read_files
的参数传递...?