2024. 3. 22. 18:26ㆍGUI/tkinter
요약 : 이 튜토리얼에서는
Tkinter 애플리케이션에서 열린 파일 대화 상자를 표시하는 방법을 배웁니다.
Tkinter 파일 열기 대화 상자 기능 소개
파일 시스템을 다루는 Tkinter 애플리케이션을 개발할 때 파일 선택을 허용하는 대화 상자를 제공해야 합니다.
이를 위해 tkinter.filedialog 모듈을 사용할 수 있습니다. 다음 단계에서는 열린 파일 대화 상자를 표시하는 방법을 보여줍니다.
먼저 tkinter.filedialog 모듈을 가져옵니다.
from tkinter import filedialog as fd
둘째, 단일 파일 선택을 허용하는 대화 상자를 표시하는 fd.askopenfilename() 함수를 호출합니다.
filename = fd.askopenfilename()
이 askopenfilename() 함수는 선택한 파일 이름을 반환합니다.
또한 askopenfilename()는 대화 상자에 표시되는 초기 디렉터리나 확장자를 기준으로 파일을 필터링하는 등 기타 유용한 옵션도 지원합니다.
다음 프로그램은 버튼을 표시합니다.

버튼을 클릭하면 파일 대화 상자가 열립니다.
파일을 선택하면 프로그램은 선택한 파일의 전체 경로를 표시합니다.
프로그램:
import tkinter as tk
from tkinter import ttk
from tkinter import filedialog as fd
from tkinter.messagebox import showinfo
# create the root window
root = tk.Tk()
root.title('Tkinter Open File Dialog')
root.resizable(False, False)
root.geometry('300x150')
def select_file():
filetypes = (
('text files', '*.txt'),
('All files', '*.*')
)
filename = fd.askopenfilename(
title='Open a file',
initialdir='/',
filetypes=filetypes)
showinfo(
title='Selected File',
message=filename
)
# open button
open_button = ttk.Button(
root,
text='Open a File',
command=select_file
)
open_button.pack(expand=True)
# run the application
root.mainloop()
여러 파일 선택
askopenfilenames() 함수는 여러 파일을 선택할 수 있는 파일 대화 상자를 표시합니다. 선택한 파일 이름을 튜플로 반환합니다. 예를 들어:
import tkinter as tk
from tkinter import ttk
from tkinter import filedialog as fd
from tkinter.messagebox import showinfo
# create the root window
root = tk.Tk()
root.title('Tkinter File Dialog')
root.resizable(False, False)
root.geometry('300x150')
def select_files():
filetypes = (
('text files', '*.txt'),
('All files', '*.*')
)
filenames = fd.askopenfilenames(
title='Open files',
initialdir='/',
filetypes=filetypes)
showinfo(
title='Selected Files',
message=filenames
)
# open button
open_button = ttk.Button(
root,
text='Open Files',
command=select_files
)
open_button.pack(expand=True)
root.mainloop()
파일 직접 열기
선택한 파일 이름을 얻은 후 open() 메소드를 사용하여 열 수 있습니다.
더욱 편리하게 하기 위해 tkinter.filedialog 모듈은 하나 이상의 파일을 선택하고 파일 개체를 직접 반환할 수 있는 몇 가지 기능도 제공합니다.
이 askopenfile() 함수는 파일 대화 상자를 표시하고 선택한 파일의 파일 객체를 반환합니다.
f = fd.askopenfile()
그리고 askopenfiles() 함수는 파일 대화 상자를 표시하고 선택한 파일의 파일 객체를 반환합니다.
f = fd.askopenfiles()
다음 프로그램은 askopenfile()함수를 사용하는 방법을 보여줍니다.

텍스트 파일을 열고 텍스트 위젯에 파일 내용을 표시할 수 있습니다.
import tkinter as tk
from tkinter import ttk
from tkinter import filedialog as fd
# Root window
root = tk.Tk()
root.title('Display a Text File')
root.resizable(False, False)
root.geometry('550x250')
# Text editor
text = tk.Text(root, height=12)
text.grid(column=0, row=0, sticky='nsew')
def open_text_file():
# file type
filetypes = (
('text files', '*.txt'),
('All files', '*.*')
)
# show the open file dialog
f = fd.askopenfile(filetypes=filetypes)
# read the text file and show its content on the Text
text.insert('1.0', f.readlines())
# open file button
open_button = ttk.Button(
root,
text='Open a File',
command=open_text_file
)
open_button.grid(column=0, row=1, sticky='w', padx=10, pady=10)
root.mainloop()
요약
- askopenfilename() 함수를 사용하면 사용자가 하나의 파일을 선택할 수 있는 파일 열기 대화 상자를 표시할 수 있습니다.
- askopenfilenames() 함수를 사용하면 사용자가 여러 파일을 선택할 수 있는 파일 열기 대화 상자를 표시할 수 있습니다.
- askopenfile() 또는 askopenfiles() 함수를 사용하여 사용자가 하나 또는 여러 파일을 선택하고 파일 또는 여러 파일 개체를 받을 수 있는 파일 열기 대화 상자를 표시합니다.
'GUI > tkinter' 카테고리의 다른 글
Tkinter Menubutton (0) | 2024.03.24 |
---|---|
Tkinter Menu (0) | 2024.03.23 |
Tkinter Color Chooser (0) | 2024.03.21 |
Tkinter askretrycancel (0) | 2024.03.20 |
Tkinter askokcancel (0) | 2024.03.19 |