Python에서 파일을 복사하는 방법

Azaz Farooq 2023년1월30일
  1. Python에서 파일을 복사하는 Shutil copyfile()메서드
  2. Shutil copy()메서드를 사용하여 권한으로 파일 복사
  3. copy()copyfile()메서드 비교
  4. copyfileobj()파일 객체 복사 방법
  5. 메타 데이터를 보존하는copy2()메서드
  6. 파이썬에서 파일을 복사하는 방법의 결론
Python에서 파일을 복사하는 방법

Python은 파일 I/O 작업 (예 :OS,subprocessshutil)을 지원하기 위해 기본 제공되는 여러 모듈과 함께 제공됩니다. shutil 모듈을 사용하여 파일과 디렉토리를 복사하기 만하면됩니다. 이 유틸리티 기능을 사용하여 파일 및 디렉토리의 복제, 전송 또는 삭제와 같은 작업을 완료합니다. 여기에서는 네 가지 방법을 다음과 같이 설명합니다.

Python에서 파일을 복사하는 Shutil copyfile()메서드

소스 자료를 대상 이름이 지정된 파일로 복사합니다. 대상이 쓰기 가능하지 않으면 복사 프로세스에서IOError 예외가 발생합니다. 원본 파일과 대상 파일이 같으면SameFileError가 반환됩니다. 소스 및 대상의 경로 이름은 문자열로 제공됩니다.

copyfile(source_file, destination_file)

문자 또는 블록 장치와 파이프는이 방법에서 지원되지 않습니다.

import shutil

source = r"C:\Users\DelftStack\Documents\test\test.txt"
destination = r"C:\Users\DelftStack\Pictures\test2\test2.txt"
shutil.copyfile(source, destination)

Shutil copy()메서드를 사용하여 권한으로 파일 복사

copy()메소드는 Unix 명령어cp처럼 작동합니다. 컨텐츠를 복사 할 때이 메소드는 대상 파일의 권한을 소스 파일과 동기화합니다. 동일한 파일을 복사하는 경우 SameFileError도 발생합니다. 구문은 다음과 같습니다.

shutil.copy(src_file, dest_file, *, follow_symlinks=True)

권한이있는 파일을 복사하는 Shutil copy()메서드의 예

import shutil

src = r"C:\Users\DelftStack\Documents\test\test.txt"
des = r"C:\Users\DelftStack\Pictures\test2\test2.txt"
shutil.copy(src, des)

copy()copyfile()메서드 비교

  1. copy()메서드는 내용이 복사 될 때 파일 권한을 설정하는 반면copyfile()은 데이터 만 복사합니다.
  2. 기본적으로 구현시copyfile()메서드는copyfileobj()메서드를 사용합니다. 이에 비해copy()메서드는copyfile()copymode()함수를 사용합니다.
  3. 위의 요점은copyfile()copy()보다 약간 더 빠르다는 것을 분명하게합니다. 왜냐하면 후자 (권한 보존)에 추가 작업이 있기 때문입니다.

copyfileobj()파일 객체 복사 방법

이 함수는 파일을 대상 경로 또는 파일의 개체에 복사합니다. 대상 객체가 파일 객체이면copyfileobj()를 직접 호출 한 후 닫아야합니다. 버퍼 크기는 버퍼의 길이를 지정하는 데 사용됩니다. 복사하는 동안 메모리에 보유 된 바이트 수입니다.

copyfileobj()메소드의 구문은 다음과 같습니다.

shutil.copyfileobj(src_file_object, dest_file_object[, length])
import shutil

filename1 = r"C:\Users\DelftStack\Documents\test\test.txt"
fileA = open(filename1, "rb")
filename2 = r"C:\Users\DelftStack\Pictures\test2\test2.txt"
fileB = open(filename2, "wb")
shutil.copyfileobj(fileA, fileB)

메타 데이터를 보존하는copy2()메서드

copy2()메서드는copy()메서드와 비슷하지만 파일 내용을 복사하는 것 외에도 소스 파일의 모든 메타 데이터를 보존합니다.

shutil.copy2(src_file, dest_file, *, follow_symlinks=True)

import shutil

src = r"C:\Users\DelftStack\Documents\test\test.txt"
des = r"C:\Users\DelftStack\Pictures\test2\test2.txt"
shutil.copy2(src, des)

파이썬에서 파일을 복사하는 방법의 결론

결국 모든 메소드에 대한 테이블이 첨부되어shutil 유틸리티를 더 잘 이해하는 데 도움이됩니다.

함수 메타 데이터 복사 권한 복사 버퍼 사용 가능 목적지는 디렉토리 일 수 있습니다.
shutil.copy 아니 아니
shutil.copyfile 아니 아니 아니 아니
shutil.copy2 아니
shutil.copyfileobj 아니 아니 아니

관련 문장 - Python File