본문 바로가기
Python

[Python] shutil 사용해서 파일 복사, 이동, 압축 하기

by teamnova 2025. 10. 21.
728x90

안녕하세요

 

shutil (shell utillities)은

파일을 복사하거나 폴더를 압축하는 등의 작업을 쉽게 해주는 파이썬 내장 모듈입니다.

 

터미널에서, 

cp, mv, rm, zip 등 명령어를 직접 치는 대신,

파이썬 코드로 자동화할 수 있는 도구입니다.

 

전체 코드입니다.

 

main.py

import shutil
from pathlib import Path

# 테스트용 디렉토리 생성
base = Path("demo_folder")
base.mkdir(exist_ok=True)
(base / "test.txt").write_text("이건 shutil 테스트 파일입니다.", encoding="utf-8")

print("테스트 파일 생성 완료:", (base / "test.txt").resolve())

# 파일 복사하기
shutil.copy("demo_folder/test.txt", "demo_folder/test_copy.txt")
print("파일 복사 완료: test_copy.txt")

# 파일 이동하기 (이름 변경 겸용)
shutil.move("demo_folder/test_copy.txt", "demo_folder/moved_test.txt")
print("파일 이동 완료: moved_test.txt")

# 디렉토리 복사하기
shutil.copytree("demo_folder", "backup_folder", dirs_exist_ok=True)
print("폴더 복사 완료: backup_folder")

# # 파일/폴더 삭제하기
# shutil.rmtree("backup_folder")  # 실제 삭제 시 주석 해제
# print("폴더 삭제 완료")

# 폴더 압축하기 (zip 파일로)
shutil.make_archive("backup_zip", "zip", "demo_folder")
print("압축 완료: backup_zip.zip")

# 압축 해제하기
shutil.unpack_archive("backup_zip.zip", "unzipped_folder")
print("압축 해제 완료: unzipped_folder 폴더 생성됨")

 

 

 

실행 결과,

 

정상적으로 폴더가 생성된것을 확인할 수 있습니다.