본문으로 건너뛰기

[Python] 파일, 디렉토리(폴더) 복사 방법

파이썬에서 shutil.copy(), shutil.copytree()으로 파일을 복사할 수 있습니다.

함수에 대한 간단한 샘플 코드 및 사용 방법을 소개하겠습니다.

1. 파일 복사 : shutil.copy()

shutil.copy(src, des)는 src 파일을 des 경로에 복사합니다.

import os
import shutil

shutil.copy("/my_dir/my_test.txt", "/my_dir/my_test_2.txt")

if os.path.exists("/my_dir/my_test_2.txt"):
print("exists")

실행 결과:

exists

2. 디렉토리 복사 : shutil.copytree()

shutil.copytree(src, des)는 src 경로의 폴더를 des 경로에 복사합니다.

다음 코드는 이 디렉토리를 "/my_dir/test_dir_2" 경로로 복사합니다.

import os
import shutil

shutil.copytree("/my_dir/test_dir", "/my_dir/test_dir_2")

for f in os.listdir("/my_dir/test_dir_2"):
print(f)

실행 결과:

a1.txt
a2.txt
a3.txt

만약 des 경로에 이미 디렉토리가 존재하면 다음과 같은 에러가 발생하며 복사가 실패합니다.

FileExistsError: [Errno 17] File exists: '/my_dir/test_dir_2'

다음과 같이 des의 디렉토리가 존재하는지 미리 확인하고 복사를 하시면 됩니다.

if not os.path.exists("/my_dir/test_dir_2"):
shutil.copytree("/my_dir/test_dir", "/my_dir/test_dir_2")