파이썬에서는 os 모듈이 제공하는 함수를 사용해 단일 파일이나 빈 폴더를 간단하게 삭제할 수 있습니다. 이 글에서는 파일 하나를 삭제하는 기본 방법부터, 여러 파일을 한 번에 삭제하거나 특정 패턴에 맞는 파일만 골라서 삭제하는 방법까지 단계별로 살펴보겠습니다.
1. os.remove()로 단일 파일 삭제하기
가장 기본적인 방법은 os.remove() 함수를 사용하는 것입니다. 예를 들어 my_file.txt라는 파일을 삭제하려면 다음과 같이 작성합니다.
>>> import os
>>> os.remove('my_file.txt')이때 os.remove()의 인수에는 반드시 절대 경로 또는 상대 경로를 지정해야 합니다. 경로가 올바르지 않으면 FileNotFoundError가 발생하므로 주의하세요.
2. 반복문으로 여러 파일 삭제하기
여러 개의 파일을 삭제하려면 삭제할 파일 목록을 만든 뒤, 반복문으로 각 파일에 os.remove()를 적용하면 됩니다.
import os
files = ['file1.txt', 'file2.txt', 'file3.txt']
for file in files:
os.remove(file)3. shutil.rmtree()로 폴더 전체 삭제하기
삭제하고 싶은 파일들이 모두 하나의 폴더 안에 있다면, 폴더째로 통째로 삭제하는 것이 더 간편합니다. 이 경우 shutil 모듈의 rmtree() 함수를 사용합니다.
>>> import shutil
>>> shutil.rmtree('my_folder')shutil.rmtree()는 지정한 폴더와 그 안의 모든 하위 폴더 및 파일을 재귀적으로 삭제합니다. 되돌릴 수 없으므로 실행 전에 경로를 반드시 확인하세요.
4. 정규식(Regex)으로 특정 패턴의 파일만 삭제하기
정규식을 활용하면 이름이 특정 패턴과 일치하는 파일만 골라서 삭제할 수도 있습니다. 예를 들어 다음 코드는 os.walk()로 폴더를 순회하면서 정규식 패턴에 맞는 파일들을 찾아 삭제합니다.
import os, re, os.path
pattern = "^your_regex_here$"
mypath = "my_folder"
for root, dirs, files in os.walk(mypath):
for file in filter(lambda x: re.match(pattern, x), files):
os.remove(os.path.join(root, file))pattern 변수에 원하는 정규식을 넣으면 됩니다. 예를 들어 확장자가 .log인 파일만 삭제하려면 "^.*\.log$"처럼 패턴을 지정할 수 있습니다.
마무리
정리하면, 파일 하나는 os.remove(), 폴더 전체는 shutil.rmtree(), 그리고 조건에 맞는 여러 파일은 반복문과 정규식을 조합해 삭제할 수 있습니다. 삭제 작업은 복구가 어렵기 때문에, 실제 운영 환경에서는 삭제 전에 파일 존재 여부를 os.path.exists()로 확인하거나 백업을 해두는 습관을 들이는 것이 좋습니다.