파일을 복사하거나 폴더를 복사하고 싶은 경우가 있습니다.
copyfile, copy, copy2 함수를 사용해서 복사가 가능합니다.
하지만 조금씩 차이가 있습니다.
파일 복사 하기
파일을 복사하는 copyfile, copy, copy2 함수는 기본적인 사용방법은 같습니다.
import shutil
shutil.copyfile("./test1/test1.txt", "./test2.txt")
shutil.copy("./test1/test1.txt", "./test3.txt")
shutil.copy2("./test1/test1.txt", "./test4.txt")
copyfile과 copy는 메타정보는 복사되지 않습니다.
copy2는 메타정보도 복사합니다.
즉, copy2를 사용하면 파일을 작성한 날짜도 복사되지만 copyfile과 copy는 파일을 작성한 날짜가 복사한 날짜로 변경됩니다.
폴더 복사 하기
폴더를 복사하는 방법을 보겠습니다.
폴더를 새로 만들면서 복사하는 경우입니다.
import shutil
shutil.copytree("./test1", "./test2")
test1 폴더에 들어있는 파일과 폴더를 test2에 복사합니다.
test2 폴더는 기존에 존재하지 않은 폴더로 copytree 함수가 실행될때 새로 만들어진 폴더입니다.
만약 test2폴더가 이미 만들어져 있으면 에러가 발생합니다.
이미 존재하는 폴더에 복사를 하고 싶은 경우를 예제로 보겠습니다.
from distutils.dir_util import copy_tree
copy_tree("./test1", "./test2")
이미 존재하는 폴더를 지정해도 에러가 발생하지 않고 복사가 됩니다.
댓글