본문 바로가기
프로그래밍언어/파이썬[중급]

[파이썬][중급] Chapter24. shutil과 파일 시스템 자동화

by about_IT 2025. 5. 23.
728x90

shutil 모듈은 파일 복사, 이동, 삭제 등 고수준의 파일 시스템 작업을 자동화할 수 있도록 도와주는 표준 라이브러리입니다. 특히 폴더 백업, 파일 정리, 디렉토리 관리와 같은 작업을 스크립트로 자동화하는 데 매우 유용합니다.


● 파일 복사

shutil.copy()는 파일 내용을 복사하고, shutil.copy2()는 복사 시 메타데이터(타임스탬프 등)까지 유지합니다.

import shutil

shutil.copy("source.txt", "backup.txt")
shutil.copy2("original.txt", "original_backup.txt")

● 폴더 복사

copytree()를 사용하면 폴더 전체를 재귀적으로 복사할 수 있습니다.

shutil.copytree("project", "project_backup")

단, 대상 경로가 이미 존재하면 오류가 발생하므로 사전 확인이 필요합니다.


● 파일 및 폴더 삭제

shutil.rmtree("temp_folder")  # 폴더 전체 삭제
os.remove("temp.txt")         # 파일 삭제

주의: rmtree()는 매우 위험하므로, 경로를 반드시 확인한 후 사용해야 합니다.


● 파일 이동 및 이름 변경

shutil.move("old_name.txt", "new_name.txt")

파일의 위치 변경뿐 아니라 이름 변경도 가능합니다.


● 디스크 공간 확인

disk_usage()로 드라이브 사용량을 확인할 수 있습니다.

usage = shutil.disk_usage("/")
print(f"총 용량: {usage.total}, 사용됨: {usage.used}, 남음: {usage.free}")

● 마무리

shutil은 수작업으로 반복되던 파일 작업을 자동화하여 생산성을 크게 높여줍니다. 특히 정기적인 백업, 정리, 환경 설정 자동화 등 다양한 실무 시나리오에 적극 활용할 수 있습니다.

728x90