파이썬에서 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")