Tkinter文本编辑器保存文件为空问题求助
解决Tkinter文本编辑器保存后文件为空的问题
你的代码里有两个核心错误导致保存的文件内容为空:
- 未调用写入方法并传入内容:
file1.write只是引用了方法对象,没有执行实际的写入操作,必须加上括号并传递要保存的文本变量t,即修改为file1.write(t)。 - 未调用文件关闭方法:
file1.close同样只是引用方法,没有执行关闭操作,需要改为file1.close(),确保缓冲区的内容被写入文件。
另外建议增加对用户取消保存对话框的判断,避免因savelocation为空导致open函数报错。
修正后的完整代码:
import sys import tkinter import tkinter.filedialog root = tkinter.Tk("") root.title("Text Editor") text = tkinter.Text(root) text.grid() def saveas(): global text t = text.get("1.0", "end-1c") savelocation = tkinter.filedialog.asksaveasfilename() # 判断用户是否选择了保存路径 if savelocation: file1 = open(savelocation, "w+") file1.write(t) # 调用write方法并传入文本内容 file1.close() # 调用close方法关闭文件 button = tkinter.Button(root, text="Save", command=saveas) button.grid() root.mainloop()
内容的提问来源于stack exchange,提问作者Origami Max
相关产品推荐
相关产品推荐

