본문으로 건너뛰기

[Python] 파일, 디렉토리(폴더) 삭제 방법

파이썬에서 os.remove(), os.rmdir(), shutil.rmtree() 함수로 파일 또는 디렉토리를 삭제할 수 있습니다.

함수에 대한 간단한 샘플 코드 및 사용 방법을 소개하겠습니다.

1. os.remove() : 파일 삭제

os.remove(path)는 인자로 전달된 경로의 파일을 삭제합니다.

os.path.exists(path)는 인자로 전달된 경로의 파일이 존재하는지를 boolean으로 리턴합니다.

import os

my_file = "/my_dir/test_1234.txt"

if os.path.exists(my_file):
os.remove(my_file)

2. os.rmdir() : 디렉토리 삭제

os.rmdir(path)는 인자로 전달된 디렉토리를 삭제합니다.

단, 디렉토리 안에 파일이 1개라도 있다면 삭제가 실패합니다. 먼저 디렉토리 내부의 파일들을 모두 삭제하고 마지막으로 디렉토리를 삭제해야 합니다.

예제 : 비어있는 디렉토리 삭제

/my_dir/temp_dir은 안에 파일이 없는 디렉토리입니다. 다음 코드로 디렉토리를 삭제할 수 있습니다.

import os

dir_path = "/my_dir/temp_dir"

if os.path.exists(dir_path):
os.rmdir(dir_path)

파일이 있는 디렉토리 삭제 시도 시, 에러 발생

/my_dir/temp_dir2 디렉토리는 파일 1개를 갖고 있습니다.

이 디렉토리를 삭제하려고 하면 Directory not empty 에러가 발생하면서 삭제가 실패합니다.

import os

dir_path = "/my_dir/temp_dir2"

if os.path.exists(dir_path):
os.rmdir(dir_path)

실행 결과:

OSError: [Errno 39] Directory not empty: '/my_dir/temp_dir2'

3. shutil.rmtree() : 디렉토리와 그 내부의 파일 모두 삭제

파일을 갖고 있는 디렉토리를 삭제하려면 내부의 파일을 먼저 삭제해야 하는데, 이런 작업은 귀찮을 수 있습니다.

shutil.rmtree()는 디렉토리 및 디렉토리 내부의 파일과 디렉토리들을 모두 삭제합니다.

이 함수를 이용하면 간편하게 디렉토리를 삭제할 수 있습니다.

import os
import shutil

dir_path = "/my_dir/temp_dir2"

if os.path.exists(dir_path):
shutil.rmtree(dir_path)