我正在尝试为文本编辑器运行此代码:
def newfile():
current = None
def create_file(entry):
nonlocal current
new_name=entry.get()
current = open(new_name,'w')
e.master.destroy()
chdir(askdirectory())
name=Tk()
name.title("Name the File?")
prompt=Label(name, text="Enter name for new file:")
prompt.grid(row=0)
e=Entry(name)
e.grid(row=1)
e.insert(0, "Untitled")
create=Button(name, text="Create", command = lambda: create_file(e))
create.grid(row=2, column=3)
name.mainloop()
return current
但是我收到了这个错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python3.2/tkinter/__init__.py", line 1402, in __call__
return self.func(*args)
File "<pyshell#3>", line 16, in <lambda>
create=Button(name, text="Create", command = lambda: create_file(e))
File "<pyshell#3>", line 6, in create_file
current = open(new_name,'w')
TypeError: an integer is required
它希望open
函数在某处有一个整数参数,但据我所知,open
不会将任何整数作为必需参数。无论是什么,它都足以引发错误并防止其运行。有谁知道它在寻找什么?
请注意,这与Missing argument error for .get method of tkinter text entry widget不同。当我认为导致python抛出错误的.get()
方法时,我发布了这个问题,但这个问题的答案基本上告诉我它不是.get()
方法,而是{ {1}}导致它的功能,所以我问了这个。是什么让我与众不同的是,我在这里询问open
函数,而不是open
方法。