파이썬에서 파일을 복사하려면 표준 라이브러리에 포함된 shutil 모듈을 사용하는 것이 가장 간단하고 확실한 방법입니다. shutil 모듈은 단일 파일은 물론 폴더 전체를 복사할 수 있는 다양한 함수를 제공합니다.
여러 파일을 한 번에 복사하기
여러 개의 파일을 동시에 복사하려면 먼저 복사할 파일들의 목록(리스트)을 만든 후, 반복문(for 문)을 사용해 각 파일을 하나씩 복사하면 됩니다.
shutil.copy() 기본 사용법
shutil.copy(source, destination) 함수를 호출하면 source 경로에 있는 파일이 destination 경로의 폴더로 복사됩니다. 두 인자는 모두 문자열 형태의 경로입니다. 만약 destination이 폴더가 아닌 파일 이름이라면, 해당 이름이 복사된 파일의 새로운 이름으로 사용됩니다. 또한 이 함수는 복사가 완료된 파일의 경로를 문자열로 반환합니다.
예제 코드
import shutil, os
files = ['file1.txt', 'file2.txt', 'file3.txt']
for f in files:
shutil.copy(f, 'dest_folder')위 코드는 현재 디렉터리에 있는 세 개의 텍스트 파일을 dest_folder라는 폴더로 순차적으로 복사합니다. 대상 폴더가 미리 존재해야 하며, 없다면 os.makedirs('dest_folder', exist_ok=True) 코드로 생성한 뒤 실행하는 것이 안전합니다.
추가 팁: 메타데이터까지 복사하기
파일의 수정 시간 등 메타데이터까지 그대로 유지하면서 복사하고 싶다면 shutil.copy() 대신 shutil.copy2()를 사용하세요. copy2는 copy와 동일하게 동작하지만 권한 정보와 타임스탬프까지 함께 복사해 줍니다. 백업 작업처럼 원본 속성 보존이 중요한 경우에 특히 유용합니다.