Tkinter cung cấp một số hàm tích hợp sẵn và phương thức thư viện lớp để xây dựng các thành phần và mục tương tác người dùng của ứng dụng. filedialog là một trong những module tkinter cung cấp các lớp và hàm thư viện để tạo cửa sổ chọn file/thư mục. Bạn có thể dùng filedialog ở nơi bạn cần yêu cầu người dùng duyệt file hoặc thư mục từ hệ thống.
Bạn cũng có thể chỉ định vị trí thư mục từ nơi file cụ thể nên được chọn. Để hiển thị filedialog bắt đầu từ vị trí cụ thể, dùng đối số initialdir = <location> trong hàm factory tĩnh askopenfilename(initialdir=<location>). Hàm này tạo dialog dạng modal và chờ lựa chọn của người dùng, trả về giá trị file đã chọn cho người gọi.
Ví dụ
Hãy tạo ứng dụng yêu cầu người dùng chọn file từ thư mục hệ thống.
# Nhập thư viện cần thiết
from tkinter import *
from tkinter import filedialog
from tkinter import ttk
# Tạo instance của cửa sổ tkinter
win = Tk()
win.geometry("700x350")
# Tạo instance của lớp style
style = ttk.Style(win)
def open_win_diag():
# Tạo hộp thoại
file = filedialog.askopenfilename(initialdir="C:/")
f = open(win.file, 'r')
# Tạo widget nhãn
label = Label(win, text="Click the button to browse the file", font='Arial 15 bold')
label.pack(pady=20)
# Tạo nút để mở hộp thoại
button = ttk.Button(win, text="Open", command=open_win_diag)
button.pack(pady=5)
win.mainloop()
Kết quả
Chạy mã trên sẽ hiển thị cửa sổ chứa hai widget.

Widget nút kích hoạt hộp thoại file, yêu cầu người dùng duyệt file từ hệ thống.

Chúng ta đã chỉ định "initialdir=C:/" trong hàm askopenfilename(). Do đó, nó mở ổ C làm thư mục ban đầu.