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

Python Tkinter로 외부 프로그램을 여는 방법 – os 모듈과 filedialog 활용법

애플리케이션을 개발하다 보면 외부 프로그램이나 시스템에 설치된 다른 애플리케이션과 상호작용해야 하는 경우가 종종 발생합니다. 파이썬에서 시스템의 프로그램을 실행하거나 파일을 열려면 os 모듈을 활용해야 합니다.

이 글에서는 Python의 os 모듈을 사용해 외부 프로그램과 상호작용하고, 파일을 여는 방법을 단계별로 살펴보겠습니다.

구현 순서

먼저, 파이썬의 filedialog 라이브러리를 이용해 사용자가 선택한 파일을 여는 함수를 정의합니다. 그다음, 선택된 파일의 경로를 화면에 출력하고, os 모듈을 통해 해당 파일을 실행하는 구조로 코드를 작성합니다.

예제 코드

# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import filedialog
import os

# tkinter 프레임 인스턴스 생성
win = Tk()

# 윈도우(프레임) 크기 설정
win.geometry("600x400")

# 애플리케이션을 여는 함수 정의
def app():
    file = filedialog.askopenfilename()
    text.config(text=file)
    # 프로그램 실행
    os.system('"%s"' %file)

# 버튼 생성
Button(win, text='클릭하여 프로그램 열기', font=('Poppins bold', 10),
command=app).pack(pady=20)

# 버튼 클릭 후 경로를 표시할 라벨 생성
text = Label(win, text="", font=('Poppins bold', 10))
text.pack(pady=20)

# 윈도우(프레임) 유지
win.mainloop()

실행 결과

위 코드를 실행하면 다음과 같은 GUI 창이 화면에 나타납니다.

Python Tkinter로 외부 프로그램을 여는 방법 – os 모듈과 filedialog 활용법

이제 창에 있는 버튼을 클릭하면 "내 문서(My Documents)" 폴더가 열리고, 원하는 프로그램이나 파일을 직접 선택하여 실행할 수 있습니다. 선택한 파일의 전체 경로는 버튼 아래 라벨에 표시되며, os.system() 함수가 해당 파일을 자동으로 실행합니다.

핵심 포인트 정리

filedialog.askopenfilename()은 파일 탐색 창을 띄워 사용자가 파일을 선택하면 그 절대 경로를 문자열로 반환합니다. 반환된 경로는 os.system() 함수에 전달되어 운영체제 기본 연결 프로그램으로 파일이 열립니다. 이 방식은 Windows, macOS, Linux 등 다양한 환경에서 외부 프로그램을 호출할 때 널리 사용되는 기본적인 패턴입니다.