|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
from tkinter import*
from tkinter.filedialog import*
root=Tk()
root.geometry('500x200')
def test():
with askopenfilename(title='上传文件',initialdir='桌面',filetypes=[('文本文件','.txt')])as f:
show['text']=f.read()
Button(root,text='选择读取的文本文件',command=test).pack()
show=Label(root,width=40,height=3,bg='green')
show.pack()
mainloop()
本帖最后由 isdkz 于 2023-3-22 11:49 编辑
因为 askopenfilename 返回的是一个选中的路径的字符串,不是一个文件对象,所以不能直接用 with
对你的代码修改如下:
- from tkinter import *
- from tkinter.filedialog import *
- root = Tk()
- root.geometry('500x200')
- def test():
- # 将 askopenfilename 的结果赋给 file_path,这是一个表示路径的字符串
- file_path = askopenfilename(title='上传文件', initialdir='桌面', filetypes=[('文本文件', '.txt')])
- if file_path: # 如果路径存在,则用上下文管理器打开文件
- with open(file_path, 'r') as f:
- content = f.read()
- show['text'] = content
- Button(root, text='选择读取的文本文件', command=test).pack()
- show = Label(root, width=40, height=3, bg='green')
- show.pack()
- mainloop()
复制代码
|
-
|