我希望能够使用tkinter条目允许用户输入文件名。该文件存储在一个变量中,然后用于运行我一直在研究的验证程序。但是,使用我现在的代码,我只是得到一个无效的文件错误,并且代码没有运行。
TypeError: invalid file: <function input_text at 0x035DBD68>
以下是我正在使用的代码:
def input_text():
mtext = stuff.get
label2 = Label(root,text=mtext).pack()
return
root = Tk()
stuff = StringVar()
root.title("Project")
root.geometry('300x100')
label = Label(root,text="My Project").pack()
button1 = Button(root,text="OK",command=input_text).pack()
entry1 = Entry(root,textvariable=stuff).pack()
with open(input_text, 'r') as f:
reader = csv.reader(f)
我们的想法是,在分配input_text之前,with语句下的代码不会执行,但我找不到这样做的方法。
答案 0 :(得分:1)
如果您希望在单击按钮后运行某些代码,请将其放在方法内。
此外,input_text
被定义为函数,open
期望文件作为错误状态。您可能希望将mtext
或StringVar
的内容直接用作文件名。
def input_text():
mtext = stuff.get() #notice the parentheses. You need to call the get method
label2 = Label(root,text=mtext).pack()
with open(mtext, 'r') as f:
reader = csv.reader(f)
root = Tk()
stuff = StringVar()
root.title("Project")
root.geometry('300x100')
label = Label(root,text="My Project").pack()
button1 = Button(root,text="OK",command=input_text).pack()
entry1 = Entry(root,textvariable=stuff).pack()
请注意,如果要访问该方法之外的已打开文件,则应将其设置为全局或使用类结构。