시스템 개발 및 관리/Windows 환경 파일 자동화

파이썬 shutil 모듈로 폴더 복사, 삭제, 압축까지 자동화하자!

Data Jun 2025. 3. 24. 13:22

반복되는 폴더 작업을 손으로 하나씩 하기엔 시간도 많이 걸리고 실수도 나기 쉽죠.
파이썬의 shutil 모듈을 사용하면 복사, 삭제, 압축, 압축 해제까지
단 몇 줄의 코드로 자동화할 수 있습니다.

 

📁 폴더 복사하기: shutil.copytree()

하위 폴더가 포함된 전체 폴더 구조를 그대로 복사하고 싶다면?

import shutil

shutil.copytree("data", "copy_of_data")

 

  • "data" 폴더 전체를 "copy_of_data"라는 이름으로 복사
  • 하위 폴더 및 파일 모두 포함
  • 이미 같은 이름의 폴더가 존재하면 오류 발생

 

🗑️ 폴더 삭제하기: shutil.rmtree()

내용이 있어도 상관없이 폴더를 통째로 삭제할 수 있어요.

import shutil

shutil.rmtree("test_directory")

 

  • os.rmdir()는 비어 있어야 삭제되지만,
  • rmtree()는 안에 내용이 있어도 강제로 삭제

⚠️ 되돌릴 수 없으니 꼭 신중하게 사용하세요!

 

 

🗜️ 폴더 압축하기: shutil.make_archive()

전체 폴더를 .zip 파일로 만들고 싶다면?

import shutil

shutil.make_archive("archive", "zip", "data")
  • "data" 폴더를 "archive.zip"으로 압축
  • 첫 번째 인자: 압축 파일 이름 (확장자 제외)
  • 두 번째 인자: 압축 방식 (zip, tar, 등)
  • 세 번째 인자: 압축할 대상 경로

결과: archive.zip 생성 완료! 

 

📦 압축 해제하기: shutil.unpack_archive()

 

압축 파일을 특정 폴더에 풀고 싶다면?

import shutil

shutil.unpack_archive("archive.zip", "unpack")

 

  • "archive.zip" 파일을 "unpack" 폴더에 해제
  • 다양한 포맷(.zip, .tar, .gztar, ...)도 지원

 

정리 요약

 

 

💬 마무리

shutil 모듈은 파일과 폴더 작업에서 가장 강력한 도구 중 하나입니다.
손으로 하기엔 번거로운 작업들, 파이썬으로 한 줄씩 자동화해보세요.
하드디스크 정리, 백업, 배포 등에서 유용하게 활용될 거예요!

다음에는 os.path와 결합해서 더 강력한 자동화 로직도 알려드릴게요 😎