폴더 이동 및 파일 열기
이번 시간에는 파이썬으로 간단한 파일 탐색기 프로그램을 만들어 보겠습니다.
파일 탐색기는 컴퓨터 안에 있는 폴더와 파일을 보여 주고, 폴더를 이동하거나 파일을 열 수 있게 도와주는 프로그램입니다.
1. 파일 탐색기 프로그램 기능
이번 프로그램에는 다음 기능이 들어갑니다.
- 현재 폴더 안의 파일 목록 보기
- 폴더 더블클릭하면 안으로 이동하기
- 파일 더블클릭하면 실행하기
- 상위 폴더로 이동하기
- 현재 위치 표시하기
2. 전체 소스 코드
import os
import tkinter as tk
from tkinter import messagebox
# 현재 폴더 경로
current_path = os.getcwd()
# 파일 목록을 화면에 보여주는 함수
def show_files():
# 경로 표시
path_label.config(text=f"현재 위치 : {current_path}")
# 리스트 박스 비우기
file_listbox.delete(0, tk.END)
try:
# 현재 폴더 안의 파일과 폴더 가져오기
files = os.listdir(current_path)
# 폴더는 [폴더] 표시, 파일은 [파일] 표시
for file in files:
full_path = os.path.join(current_path, file)
if os.path.isdir(full_path):
file_listbox.insert(tk.END, f"[폴더] {file}")
else:
file_listbox.insert(tk.END, f"[파일] {file}")
except PermissionError:
messagebox.showerror("오류", "이 폴더에 접근할 수 없습니다.")
# 더블클릭했을 때 실행되는 함수
def open_item(event):
global current_path
# 선택한 항목 가져오기
selected = file_listbox.curselection()
if not selected:
return
item = file_listbox.get(selected[0])
# [폴더], [파일] 글자 제거
name = item.replace("[폴더] ", "").replace("[파일] ", "")
# 전체 경로 만들기
full_path = os.path.join(current_path, name)
# 폴더이면 폴더 안으로 이동
if os.path.isdir(full_path):
current_path = full_path
show_files()
# 파일이면 파일 열기
else:
try:
os.startfile(full_path) # 윈도우에서 파일 열기
except:
messagebox.showerror("오류", "파일을 열 수 없습니다.")
# 상위 폴더로 이동하는 함수
def go_parent_folder():
global current_path
# 현재 폴더의 부모 폴더로 이동
current_path = os.path.dirname(current_path)
show_files()
# tkinter 창 만들기
root = tk.Tk()
root.title("파이썬 파일 탐색기")
root.geometry("700x500")
# 제목
title_label = tk.Label(root, text="파이썬 파일 탐색기", font=("맑은 고딕", 18, "bold"))
title_label.pack(pady=10)
# 현재 경로 표시
path_label = tk.Label(root, text="", font=("맑은 고딕", 10), wraplength=650)
path_label.pack(pady=5)
# 상위 폴더 버튼
parent_button = tk.Button(root, text="상위 폴더로 이동", command=go_parent_folder)
parent_button.pack(pady=5)
# 파일 목록 리스트 박스
file_listbox = tk.Listbox(root, font=("맑은 고딕", 12), width=70, height=18)
file_listbox.pack(pady=10)
# 더블클릭 이벤트 연결
file_listbox.bind("<Double-Button-1>", open_item)
# 처음 파일 목록 보여주기
show_files()
# 프로그램 실행
root.mainloop()
3. 실행 방법
- 위 코드를 chapter24.py 파일로 저장합니다.
- 파이썬에서 실행합니다.
python chapter24.py
- 프로그램 창이 열리면 현재 폴더의 파일과 폴더가 보입니다.
- 폴더를 더블클릭하면 그 폴더 안으로 이동합니다.
- 파일을 더블클릭하면 해당 파일이 열립니다.
4. 소스 코드 설명
1) 필요한 도구 가져오기
import os
import tkinter as tk
from tkinter import messagebox
os는 컴퓨터의 폴더와 파일을 다룰 때 사용합니다.
tkinter는 화면이 있는 GUI 프로그램을 만들 때 사용합니다.
messagebox는 오류 메시지를 보여줄 때 사용합니다.
2) 현재 폴더 위치 저장하기
current_path = os.getcwd()
os.getcwd()는 지금 파이썬 프로그램이 실행되고 있는 폴더 위치를 알려줍니다.
예를 들어 프로그램이 C:\python 폴더에서 실행되면 현재 위치도 C:\python이 됩니다.
3) 파일 목록 보여주기
files = os.listdir(current_path)
os.listdir()은 현재 폴더 안에 있는 파일과 폴더 이름을 가져옵니다.
if os.path.isdir(full_path):
file_listbox.insert(tk.END, f"[폴더] {file}")
else:
file_listbox.insert(tk.END, f"[파일] {file}")
폴더이면 [폴더]라고 표시하고, 파일이면 [파일]이라고 표시합니다.
4) 폴더 더블클릭하면 이동하기
if os.path.isdir(full_path):
current_path = full_path
show_files()
선택한 것이 폴더라면 현재 위치를 그 폴더로 바꿉니다.
그리고 다시 파일 목록을 보여줍니다.
쉽게 말하면 폴더 문을 열고 안으로 들어가는 것과 같습니다.
5) 파일 더블클릭하면 열기
os.startfile(full_path)
os.startfile()은 파일을 실행하거나 열어주는 명령어입니다.
예를 들어 이미지 파일이면 사진 프로그램으로 열리고, 텍스트 파일이면 메모장으로 열릴 수 있습니다.
※ 이 코드는 윈도우에서 사용하기 좋습니다.
6) 상위 폴더로 이동하기
current_path = os.path.dirname(current_path)
os.path.dirname()은 현재 폴더의 한 단계 위 폴더를 알려줍니다.
예를 들어 현재 위치가
C:\python\project
라면 상위 폴더는
C:\python
이 됩니다.
5. 실행 결과 예시
프로그램을 실행하면 이런 화면이 나옵니다.
파이썬 파일 탐색기
현재 위치 : C:\python
[폴더] project
[폴더] image
[파일] memo.txt
[파일] test.py
[파일] photo.png
폴더를 더블클릭하면 폴더 안으로 이동합니다.
파일을 더블클릭하면 파일이 열립니다.
6. 이번 예제에서 배운 내용
이번 파일 탐색기 프로그램을 만들면서 다음 내용을 배웠습니다.
- os.getcwd()로 현재 폴더 확인하기
- os.listdir()로 파일 목록 가져오기
- os.path.isdir()로 폴더인지 확인하기
- os.path.join()으로 정확한 파일 경로 만들기
- tkinter Listbox로 목록 화면 만들기
- 더블클릭 이벤트 사용하기
- 파일 열기 기능 만들기
7. 마무리
이번에는 파이썬으로 간단한 파일 탐색기 프로그램을 만들어 보았습니다.
처음에는 파일 목록만 보여주는 간단한 프로그램이지만, 기능을 더 추가하면 실제 윈도우 탐색기처럼 발전시킬 수 있습니다.
예를 들어 다음 기능도 추가할 수 있습니다.
- 파일 삭제 기능
- 파일 이름 변경 기능
- 새 폴더 만들기
- 파일 복사 기능
- 파일 검색 기능
파이썬의 os 모듈과 tkinter를 함께 사용하면 컴퓨터 파일을 다루는 프로그램을 쉽게 만들 수 있습니다.
파일 탐색기 만들기

'강의 > Python 기초' 카테고리의 다른 글
| Chapter 26. 엑셀 자동 보고서 생성기 만들기 (0) | 2026.06.15 |
|---|---|
| Chapter 25. 파일 자동 정리 프로그램 만들기 (0) | 2026.06.15 |
| Chapter 23. GUI 달력 프로그램 만들기 (0) | 2026.06.13 |
| Chapter 22. 그림판 만들기 (0) | 2026.06.13 |
| Chapter 21. 이미지 뷰어 만들기 (0) | 2026.06.11 |