Computer >> Máy Tính >  >> Lập trình >> Python

Mở và đọc tệp với tên tệp askopen trong Tkinter?

Khi người dùng muốn mở tệp từ một thư mục, cách ưu tiên để thực hiện việc này là hiển thị cửa sổ bật lên trong đó người dùng chọn tệp để Mở. Giống như hầu hết các công cụ và widget, Tkinter cung cấp cho chúng ta cách mở hộp thoại để mở tệp, đọc tệp, lưu tệp. Tất cả các chức năng này đều là một phần của tệp hồ sơ Mô-đun bằng Python. Cũng giống như các widget khác, tệp tệp tin cần phải được nhập một cách rõ ràng vào sổ ghi chép. Có một số mô-đun khác có chứa tệp danh mục như, thư mục hỏi, tên tệp tin, tệp tin hỏi, tên tệp tin yêu cầu, tên tệp tin yêu cầu, tên tệp tin tài khoản, v.v.

Ví dụ

Trong ví dụ này, chúng tôi sẽ xác định một hàm để mở và đọc tệp bằng cách sử dụng askopenfilename .

Chúng tôi sẽ xác định một ứng dụng có chứa một nút để mở một tệp và sẽ đóng gói nội dung của tệp đó trong một tiện ích Nhãn. Để đọc nội dung tệp, chúng tôi sẽ sử dụng read () cùng với tên tệp.

#Import tkinter library
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
#Create an instance of tkinter frame or window
win= Tk()
win.geometry("750x150")
#Define a function to Opening the specific file using 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")
#Create an Empty Label to Read the content of the File
label= Label(win,text="", font=('Courier 13 bold'))
label.pack()
#Create a button for opening files
button=ttk.Button(win, text="Open",command=open_files)
button.pack(pady=30)
win.mainloop()

Đầu ra

Chạy đoạn mã trên sẽ hiển thị một cửa sổ có chứa một nút mà khi được nhấp vào, sẽ mở ra một cửa sổ mới để tải và đọc nội dung tệp.

Mở và đọc tệp với tên tệp askopen trong Tkinter?

Nhấp vào nút "Mở" để mở tệp (văn bản, "*") trong cửa sổ.

Mở và đọc tệp với tên tệp askopen trong Tkinter?