개요
파이썬에서 디렉토리(폴더)를 삭제하는 방법은 상황에 따라 달라집니다. 비어 있는 폴더인지, 아니면 파일이 들어 있는 폴더인지에 따라 사용하는 함수가 다르므로 각각의 방법을 정확히 이해하고 사용하는 것이 중요합니다.
1. 빈 디렉토리 삭제하기: os.rmdir()
비어 있는 폴더를 삭제하려면 os 모듈의 rmdir 함수를 호출하면 됩니다.
예제 코드
>>> import os
>>> os.rmdir('my_folder')
주의: 지정한 디렉토리가 비어 있지 않으면 OSError(Windows에서는 PermissionError 또는 Directory not empty 오류)가 발생합니다. 따라서 이 함수는 반드시 빈 폴더에만 사용해야 합니다.
2. 파일이 포함된 디렉토리 삭제하기: shutil.rmtree()
내부에 파일이나 하위 폴더가 포함된 디렉토리를 통째로 삭제하려면 shutil 모듈의 rmtree 함수를 사용합니다. 이 함수는 대상 폴더와 그 안의 모든 내용을 재귀적으로 한 번에 제거합니다.
예제 코드
>>> import shutil
>>> shutil.rmtree('my_folder')
주의: rmtree로 삭제된 데이터는 휴지통으로 가지 않고 영구적으로 사라지므로, 실행 전에 경로를 반드시 확인하세요. 실수를 방지하려면 아래와 같이 존재 여부를 먼저 검사하는 것이 좋습니다.
import os
import shutil
folder = 'my_folder'
if os.path.exists(folder):
shutil.rmtree(folder)
else:
print('삭제할 폴더가 존재하지 않습니다.')
3. 참고: pathlib 모듈 활용하기
객체 지향 방식으로 경로를 다루고 싶다면 파이썬 3.4부터 제공되는 pathlib 모듈을 사용할 수도 있습니다.
>>> from pathlib import Path
>>> Path('my_folder').rmdir() # 빈 폴더만 삭제 가능
정리
- 빈 폴더 삭제:
os.rmdir()또는Path.rmdir() - 파일이 있는 폴더 전체 삭제:
shutil.rmtree()
두 함수의 차이를 잘 기억해 두면 파일 시스템 작업 시 안전하고 효율적으로 디렉토리를 관리할 수 있습니다.