Mac系统下使用Tkinter的askopenfilename()时为何出现文件未找到错误?
问题解决:Tkinter文本编辑器打开文件时的FileNotFoundError
错误原因
你的代码里有两个关键问题:
- 调用
open()时用了字符串字面量"text_file",而不是filedialog.askopenfilename()返回的实际文件路径变量text_file。程序因此尝试在当前目录寻找名为"text_file"的文件,自然找不到。 - 最后一行
text_file.close()完全错误,text_file是存储路径的字符串,不是打开的文件对象,真正需要关闭的是text_file1。
修正后的代码
def open_txt(): text_file = filedialog.askopenfilename(initialdir="/", title="Select a File", filetypes=[("Text Files", "*.txt")]) # 防止用户取消选择文件导致报错 if text_file: # 使用with语句自动处理文件关闭,无需手动调用close() with open(text_file, "r") as text_file1: contents = text_file1.read() my_textbox.insert(END, contents)
补充说明
- 这个错误和Windows/Mac系统差异无关,纯粹是代码逻辑问题,修正后在Mac上可以正常运行。
- 使用
with语句是Python操作文件的最佳实践,它会在代码块执行完毕后自动关闭文件,避免资源泄漏。
内容的提问来源于stack exchange,提问作者Graham Gill
相关产品推荐
相关产品推荐

