파이썬 파일 복사 예제
버전 3.7에서 변경: 파일 이름 및 extract_dir에 대한 경로와 같은 개체를 허용합니다. 작은 파일과 파이썬 내장 만 사용하여, 당신은 다음과 같은 하나의 라이너를 사용할 수 있습니다 : 다음 코드에서 우리는 check_output 명령을 사용하여 “file1.txt”에 “file1.txt”를 복사합니다 : copy2 (src, dst)는 종종 카피 파일 (src, dst)보다 더 유용합니다 : 파이썬은 파이썬이 있기 때문에 단일 파일을 복사할 때 유용한 간단하고 높은 수준의 파일 작업을 위해 shutil이라고 하는 특수 모듈입니다. POSIX 플랫폼에서는 파일 소유자와 그룹이 ACL뿐만 아니라 손실된다는 것을 의미합니다. Mac OS에서는 리소스 포크 및 기타 메타데이터가 사용되지 않습니다. 즉, 리소스가 손실되고 파일 형식 및 작성자 코드가 올바르지 않습니다. Windows에서는 파일 소유자, ACL 및 대체 데이터 스트림이 복사되지 않습니다. 어떤 것이 당신에게 적합한지 확실하지 않습니까? 여기에서 파일을 복사하는 다양한 방법을 제시했기 때문에 이해할 수 있습니다. 파일을 복사하는 데 사용하는 방법은 전적으로 사용자의 선택이며 특정 요구 사항에 따라 다릅니다. 대부분의 경우 shutil 명령 중 하나가 잘 작동하지만. shutil.copy2로 시작하여 필요한 작업을 수행하는지 확인하십시오.
파이썬 3.5로 당신은 작은 파일 (예 : 텍스트 파일, 작은 jpegs)에 대해 다음을 수행 할 수 있습니다 : shutil.copyfile의 흥미롭고 잠재적으로 유용한 기능 중 하나는 follow_symlinks 부울 인수입니다. False로 설정되어 있고 원본 파일이 기호 링크인 경우 파일을 복사하는 대신 새 기호 링크가 만들어집니다. 위의 코드를 실행하면서 볼 수 있듯이 “file1.txt”는 “file4.txt”로 복사되었습니다. 그러나 “file1.txt”를 “file3.txt”에 복사하여 새 생성 날짜를 제공한 shutil.copy와 달리 새 파일에 생성 날짜가 보존된 것을 발견했을 수 있습니다. 그러나 copy2() 메서드는 copy()와 같은 기능을 합니다. 그러나 데이터를 복사하는 동안 메타 데이터에 추가된 액세스 및 수정 시간도 가져옵니다. 동일한 파일을 복사하면 SameFileError가 생성됩니다. 버전 3.3에서 변경: 외부 파일 시스템에 대한 명시적 심링크 처리를 추가하여 GNU의 mv 동작에 맞게 조정했습니다. 이제 dst를 반환합니다.
src에 뿌리를 둔 전체 디렉터리 트리를 재귀적으로 복사합니다. dst로 명명된 대상 디렉터리도 아직 존재하지 않아야 합니다. 부모 디렉토리가 누락되어 생성됩니다. 디렉터리 권한및 시간은 copystat()로 복사되고, 개별 파일은 shutil.copy2()를 사용하여 복사됩니다. 아래 예제는 “file1.txt”를 “file6.txt”로 복사합니다: 다음으로 특수 파일을 다르게 취급하지 않으며 클론을 만들지 않습니다. 여기서 args 매개 변수에는 사용하려는 셸 명령이 포함됩니다. 다시 한번, 파이썬 문서는 shell = True를 사용하는 것을 경고하므로이 방법을 주의하십시오.