시스템 개발 및 관리/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와 결합해서 더 강력한 자동화 로직도 알려드릴게요 😎