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

Python으로 폴더(디렉터리)를 재귀적으로 삭제하는 방법 – shutil.rmtree() 완벽 정리

파일과 하위 폴더를 모두 포함하는 디렉터리를 한 번에 삭제하고 싶다면, Python 표준 라이브러리의 shutil 모듈을 사용하는 것이 가장 간단하고 확실한 방법입니다. shutil.rmtree() 함수를 호출하기만 하면 지정한 폴더(디렉터리 트리) 전체가 재귀적으로 제거됩니다.

shutil.rmtree() 기본 사용법

>>> import shutil
>>> shutil.rmtree('my_folder')

위 코드를 실행하면 my_folder 폴더와 그 안에 들어 있는 모든 파일, 하위 폴더가 함께 삭제됩니다.

주요 매개변수

  • path: 삭제할 디렉터리의 경로
  • ignore_errors: True로 설정하면 삭제 도중 발생하는 오류를 무시하고 계속 진행 (기본값은 False)
  • onerror: 오류가 발생했을 때 호출될 콜백 함수를 지정하여 세부적인 예외 처리 가능

오류를 무시하고 삭제하기

>>> import shutil
>>> shutil.rmtree('my_folder', ignore_errors=True)

경로가 존재하지 않거나 권한 문제로 삭제가 중단될 가능성이 있다면 위처럼 ignore_errors=True 옵션을 활용하면 됩니다.

주의 사항

rmtree()로 삭제된 데이터는 휴지통으로 이동하지 않고 영구적으로 사라지므로, 실행 전에 대상 경로를 반드시 확인해야 합니다. 특히 Windows 환경에서는 읽기 전용 파일 때문에 오류가 발생할 수 있는데, 이 경우 onerror 콜백에서 해당 파일의 권한을 변경한 뒤 삭제를 재시도하도록 처리하면 해결할 수 있습니다.