Tkinter에서 askdirectory 대화상자를 활용하면 사용자가 직접 폴더를 선택하고, 그 안에 새 하위 폴더를 손쉽게 만들 수 있습니다. 이 글에서는 파일 탐색 대화상자와 os 모듈을 조합하여 부모 디렉터리 내에 새 폴더를 자동으로 생성하는 방법을 단계별로 살펴보겠습니다.
구현 절차
필요한 모듈을 임포트합니다. askdirectory 메서드를 사용하려면 filedialog 모듈이, 폴더 생성을 위해서는 os 모듈이 필요합니다.
Tkinter 프레임(윈도우)의 인스턴스를 생성합니다.
win.geometry 메서드를 사용해 윈도우 크기를 설정합니다.
사용자 정의 함수 create_subfolder를 정의합니다. 함수 내부에서 filedialog.askdirectory를 호출해 폴더를 선택하고, 그 경로를 source_path 변수에 저장합니다.
filedialog의 askdirectory 메서드로 디렉터리 선택 창을 열고, 선택된 디렉터리의 경로를 path 변수에 저장합니다.
os.path.join과 makedirs를 사용해 부모 디렉터리 안에 하위 폴더를 생성합니다.
create_subfolder 함수를 호출할 버튼을 만들어 화면에 배치합니다.
예제 코드
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
import os
# Tkinter 프레임(윈도우) 인스턴스 생성
win = Tk()
# 윈도우 크기 설정
win.geometry("700x350")
def create_subfolder():
source_path = filedialog.askdirectory(title='부모 디렉터리 선택')
path = os.path.join(source_path, 'Images')
os.makedirs(path)
button1 = ttk.Button(win, text="폴더 선택", command=create_subfolder)
button1.pack(pady=5)
win.mainloop()실행 결과
위 코드를 실행하면 먼저 다음과 같은 윈도우가 나타납니다.

이제 "폴더 선택" 버튼을 클릭하여 부모 폴더를 지정하면, 선택한 부모 폴더 안에 "Images"라는 이름의 하위 폴더가 자동으로 생성됩니다.

추가 팁
이미 같은 이름의 폴더가 존재할 경우 os.makedirs는 오류를 발생시킵니다. 이를 방지하려면 다음과 같이 exist_ok=True 옵션을 사용하는 것이 좋습니다.
os.makedirs(path, exist_ok=True)
또한, 폴더 생성 완료 후 사용자에게 알림을 표시하려면 messagebox.showinfo를 함께 활용하면 더욱 완성도 높은 GUI 애플리케이션을 만들 수 있습니다.