Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Mở và đọc file với askopenfilename trong Tkinter

Khi người dùng muốn mở file từ thư mục, cách tốt là hiển thị popup chọn file. Tkinter cung cấp dialog mở/đọc/lưu file trong Module filedialog. Cần import filedialog. Các module khác: askdirectory, askopenfilename, askopenfile, askopenfilenames, asksaveasfilename.

Ví dụ

Định nghĩa hàm mở/đọc file dùng askopenfilename.

Tạo ứng dụng có nút mở file, hiển thị nội dung trong Label. Đọc nội dung bằng read() cùng tên file.

#Import tkinter library
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
#Tạo instance tkinter frame
win= Tk()
win.geometry("750x150")
#Hàm mở file cụ thể dùng filedialog
def open_files():
    path= filedialog.askopenfilename(title="Select a file", filetypes=(("text files","*.txt"), ("all files","*.*")))
    file= open(path,'r')
    txt= file.read()
    label.config(text=txt, font=('Courier 13 bold'))
    file.close()
    button.config(state=DISABLED)
    win.geometry("750x450")
#Tạo Label rỗng đọc nội dung file
label= Label(win,text="", font=('Courier 13 bold'))
label.pack()
#Tạo nút mở file
button=ttk.Button(win, text="Open",command=open_files)
button.pack(pady=30)
win.mainloop()

Kết quả

Chạy mã hiển thị cửa sổ có nút mở cửa sổ mới tải và đọc nội dung file.

Mở và đọc file với askopenfilename trong Tkinter

Bấm "Open" mở file(text, "*") trong cửa sổ.

Mở và đọc file với askopenfilename trong Tkinter