파이썬에서 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)