스왑(swap) 파일은 확장자가 .swp인 파일로, 주로 Vim 같은 편집기가 비정상적으로 종료되었을 때 자동으로 생성됩니다. 특정 폴더와 그 하위 디렉터리에 있는 모든 스왑 파일을 한 번에 삭제하는 가장 간단한 방법은 문자열 메서드 endswith()를 사용해 확장자가 .swp인 파일명을 걸러낸 뒤 삭제하는 것입니다.
예제 코드
import os, os.path
mypath = "my_folder"
for root, dirs, files in os.walk(mypath):
for file in filter(lambda x: x.endswith('.swp'), files):
os.remove(os.path.join(root, file))
이 프로그램은 my_folder 디렉터리를 재귀적으로 탐색하면서, 확장자가 .swp로 끝나는 모든 파일을 찾아 삭제합니다.
코드 동작 원리
- os.walk(): 지정한 경로를 기준으로 모든 하위 디렉터리를 순회하며, 현재 경로(
root), 하위 폴더 목록(dirs), 파일 목록(files)을 차례로 반환합니다. - filter() + endswith(): 파일 목록 중 이름이
'.swp'로 끝나는 파일만 선별합니다. - os.remove():
os.path.join()으로 만든 전체 경로를 이용해 해당 파일을 삭제합니다.
주의 사항
삭제 작업은 되돌릴 수 없으므로 실행 전에 대상 폴더를 반드시 확인하세요. 안전을 위해 실제 삭제 전에 아래처럼 print()로 삭제될 파일 목록을 먼저 출력해 점검하는 것도 좋은 습관입니다.
import os
mypath = "my_folder"
for root, dirs, files in os.walk(mypath):
for file in filter(lambda x: x.endswith('.swp'), files):
print(os.path.join(root, file)) # 삭제될 파일 미리 확인
# os.remove(os.path.join(root, file))