파이썬에서 파일을 어떻게 복사합니까?
반응형
shutil
사용할 수있는 많은 방법이 있습니다. 그 중 하나는 다음과 같습니다.
import shutil
shutil.copyfile(src, dst)
# 2nd option
shutil.copy(src, dst) # dst can be a folder; use shutil.copy2() to preserve timestamp
- 라는 파일의 내용을 라는 파일에 복사
src
합니다dst
. 둘 다src
경로dst
를 포함하여 파일의 전체 파일 이름이어야 합니다. - 대상 위치는 쓰기 가능해야 합니다. 그렇지 않으면
IOError
예외가 발생합니다. - 이미 존재하는 경우
dst
대체됩니다. - 캐릭터나 블록 디바이스, 파이프와 같은 특수 파일은 이 기능으로 복사할 수 없습니다.
- , 및 는 s
copy
로 지정된 경로 이름입니다.src
dst
str
shutil
살펴볼 또 다른 방법은 입니다 shutil.copy2()
. 비슷하지만 더 많은 메타데이터(예: 타임스탬프)를 보존합니다.
os.path
연산을 사용 하는 경우 copy
대신 copyfile
. copyfile
문자열만 허용합니다.
기능 | 메타데이터 복사 |
권한 복사 |
파일 객체 사용 | 대상 은 디렉토리일 수 있습니다. |
---|---|---|---|---|
셧틸.카피 | 아니 | 예 | 아니 | 예 |
셧틸.카피파일 | 아니 | 아니 | 아니 | 아니 |
셧틸.카피2 | 예 | 예 | 아니 | 예 |
셧틸.카피파일오브제이 | 아니 | 아니 | 예 | 아니 |
copy2(src,dst)
copyfile(src,dst)
다음과 같은 이유 보다 종종 더 유용합니다 .
- 디렉토리
dst
가 될 수 있습니다 ( 전체 대상 파일 이름 대신). 이 경우 기본 이름 은 새 파일을 만드는 데 사용됩니다.src
- 파일 메타데이터의 원래 수정 및 액세스 정보(mtime 및 atime)를 유지합니다(그러나 약간의 오버헤드가 있음).
다음은 간단한 예입니다.
import shutil
shutil.copy2('/src/dir/file.ext', '/dst/dir/newname.ext') # complete target filename given
shutil.copy2('/src/file.ext', '/dst/dir') # target filename is /dst/dir/file.ext
반응형
'파이썬' 카테고리의 다른 글
[python] __init__.py는 무엇을 위한 것입니까? (0) | 2022.08.21 |
---|---|
[python] 사전에 새 키를 어떻게 추가합니까? (0) | 2022.08.21 |
[python] 값으로 사전을 어떻게 정렬합니까? (0) | 2022.08.21 |
[python] 바이트를 문자열로 변환 (0) | 2022.08.21 |
[python] __str__과 __repr__의 차이점은 무엇입니까? (0) | 2022.08.21 |