tkinter 애플리케이션에서 파일 시스템과 상호작용하려면 filedialog 모듈을 사용할 수 있습니다. 이 모듈은 시스템 내 파일을 다룰 수 있는 기능을 제공하며, 개발자가 애플리케이션에 다양한 종류의 파일 대화상자를 손쉽게 구현할 수 있도록 여러 내장 함수를 지원합니다.
그중 가장 널리 사용되는 함수는 filedialog.askopenfilename()입니다. 이 함수는 사용자에게 프로그램 인터페이스에서 열 파일을 선택하도록 요청하는 대화상자를 생성하며, 선택된 파일의 전체 경로를 문자열 형태로 반환합니다.
예제 코드
filedialog 함수를 통해 연 파일의 이름, 즉 문자열 형태의 파일 경로를 얻고 싶다면 Label 위젯을 활용해 선택한 파일 경로를 화면에 표시할 수 있습니다. 아래 예제는 모든 유형의 파일을 열 수 있는 간단한 애플리케이션입니다.
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import filedialog
# tkinter 윈도우 인스턴스 생성
win = Tk()
win.geometry("700x300")
# filedialog 함수로 파일 선택 대화상자 생성
win.filename = filedialog.askopenfilename(initialdir="C:/", title="Select a file")
# 라벨 위젯 생성 및 파일 경로 표시
label = Label(win, text="선택한 파일은: " + win.filename, font='Courier 11 bold')
label.pack()
win.mainloop()실행 결과
위 코드를 실행하면 C 드라이브에서 파일을 선택하라는 대화상자가 나타납니다.

사용자가 파일을 선택하면 윈도우에 해당 파일의 전체 경로가 문자열로 표시됩니다.

참고: 자주 사용되는 filedialog 함수들
filedialog 모듈에는 askopenfilename() 외에도 유용한 함수들이 있습니다.
- asksaveasfilename(): 파일 저장 위치와 이름을 지정하는 대화상자를 엽니다.
- askdirectory(): 폴더(디렉터리)를 선택하는 대화상자를 엽니다.
- askopenfilenames(): 여러 개의 파일을 동시에 선택할 수 있으며, 선택된 경로들을 튜플 형태로 반환합니다.
이러한 함수들은 모두 선택 결과를 문자열(또는 문자열의 튜플)로 반환하므로, 반환값을 변수에 저장한 뒤 Label, Entry 등의 위젯이나 파일 입출력 로직에 그대로 활용할 수 있습니다.