Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Tkinter askdirectory 대화상자로 새 폴더(하위 디렉터리) 자동 생성하는 방법

Tkinter에서 askdirectory 대화상자를 활용하면 사용자가 직접 폴더를 선택하고, 그 안에 새 하위 폴더를 손쉽게 만들 수 있습니다. 이 글에서는 파일 탐색 대화상자와 os 모듈을 조합하여 부모 디렉터리 내에 새 폴더를 자동으로 생성하는 방법을 단계별로 살펴보겠습니다.

구현 절차

  • 필요한 모듈을 임포트합니다. askdirectory 메서드를 사용하려면 filedialog 모듈이, 폴더 생성을 위해서는 os 모듈이 필요합니다.

  • Tkinter 프레임(윈도우)의 인스턴스를 생성합니다.

  • win.geometry 메서드를 사용해 윈도우 크기를 설정합니다.

  • 사용자 정의 함수 create_subfolder를 정의합니다. 함수 내부에서 filedialog.askdirectory를 호출해 폴더를 선택하고, 그 경로를 source_path 변수에 저장합니다.

  • filedialogaskdirectory 메서드로 디렉터리 선택 창을 열고, 선택된 디렉터리의 경로를 path 변수에 저장합니다.

  • os.path.joinmakedirs를 사용해 부모 디렉터리 안에 하위 폴더를 생성합니다.

  • 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()

실행 결과

위 코드를 실행하면 먼저 다음과 같은 윈도우가 나타납니다.

Tkinter askdirectory 대화상자로 새 폴더(하위 디렉터리) 자동 생성하는 방법

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

Tkinter askdirectory 대화상자로 새 폴더(하위 디렉터리) 자동 생성하는 방법

추가 팁

이미 같은 이름의 폴더가 존재할 경우 os.makedirs는 오류를 발생시킵니다. 이를 방지하려면 다음과 같이 exist_ok=True 옵션을 사용하는 것이 좋습니다.

os.makedirs(path, exist_ok=True)

또한, 폴더 생성 완료 후 사용자에게 알림을 표시하려면 messagebox.showinfo를 함께 활용하면 더욱 완성도 높은 GUI 애플리케이션을 만들 수 있습니다.