반응형
파이썬에서 파일복사
운영 체제 셸 유틸리티를 사용하여 파일을 쉽게 복사할 수 있는 내장 기능을 제공합니다.
다음 명령은 파일 복사에 사용됩니다.
shutil.copy(src,dst)
다음 명령은 메타데이터 정보가 있는 파일을 복사하는 데 사용됩니다.
shutil.copystat(src,dst)
목차
파이썬에서 파일을 복사하는 방법
다음은 shutil copy() 메서드를 사용하여 파이썬에서 파일을 복사하는 단계입니다.
Step1: 현재 디렉토리에서 원본 경로 캡처
파일을 복사하기 전에 현재 디렉토리에서 원본 파일의 경로를 가져와야 합니다
- 변수 선언 : .txt 파일이 있는 경우 "src" 변수에 파일 경로를 저장합니다.
- 변수에 분할 기능 적용 : 코드에서 "src" 변수를 사용하여 경로+파일 이름을 분할하고 결과를 출력으로 출력합니다.
코드설명
- 먼저 "Entity01.txt" 파일이 있는지 확인합니다. 이전에 Entity01.txt 파일을 만들었기 때문에 파일이 존재한다는 것을 알고 있으며 코드를 계속 사용합니다.
- 파일이 있는 경우 " src " 변수에 파일 경로를 저장 합니다.
- 경로를 얻으면 경로와 파일 이름을 분리합니다.
path.split
이를 위해 소스 변수에 split 함수를 사용할 것입니다.- 코드 실행시 " 파일명 "과 " 파일경로 "를 따로 출력
Step2 : shutil 모듈
기존 파일의 복사본 만들기 Shutil 모듈을 사용하여 기존 파일의 복사본을 만듭니다. 여기에서 기존 파일 "Entity01.txt"의 복사본을 만들었습니다.
코드설명
- 원래 파일 이름 "Entity01.txt"의 끝에 문자 .bak를 추가하여 확장자가 .bak인 "Entity01.txt.bak" 복사본을 생성합니다.
- 그런 다음 유틸리티의 복사 기능을 사용하여 소스에서 대상으로 복사합니다.
- 코드를 실행하면 패널 오른쪽에 확장자가 .bak인 중복 파일이 생성되는 것을 볼 수 있습니다.
Step3 : 파일의 메타 데이터, 권한 및 기타정보
copy 함수는 파일의 내용만 복사하고 다른 정보는 복사하지 않습니다.
파일과 관련된 메타 데이터 , 파일 권한 및 기타 정보 를 복사하려면 " copystat " 기능을 사용해야 합니다.
이 코드를 실행하기 전에 "Entity01.text.bak" 복사 파일을 삭제해야 합니다.
파일을 삭제하고 프로그램을 실행하면 .txt 파일의 복사본이 생성되지만 이번에는 파일 권한, 수정 시간 및 메타데이터 정보와 같은 모든 정보가 포함 됩니다. OS 셸로 이동하여 정보를 확인할 수 있습니다.
import os
import shutil
from os import path
def main():
# 기존 파일 복제
if path.exists("Entity01.txt"):
# 같은 디렉토리에 있는 파일의 경로
src = path.realpath("Entity01.txt");
#필터로 경로 분리
head, tail = path.split(src)
print("paht : "+ head)
print("fite : "+ tail)
# "bak"를 붙여서 백업 복사본을 만들어 봅시다.
dst = src + ".bak"
# 쉘을 사용하여 파일 사본을 만듭니다.
shutil.copy(src, dst)
# 권한 복사, 수정
shutil.copystat(src, dst)
if __name__ == "__main__":
main()
Step4 : 정보 가져오기
마지막으로 수정한 텍스트 파일에 대한 정보를 가져올 수 있습니다.
- Code Line#15- .txt 파일(Entity01)이 마지막으로 수정된 날짜, 날짜, 월, 연도 및 시간을 알려줍니다.
경로 모듈을 사용하여 파일 수정 시간 세부 정보를 가져온 다음 time class c time 함수 를 사용하여 읽을 수 있는 시간으로 변환합니다.
따라서 코드를 실행하면 Entity01.txt 파일이 2022년 11월 10일 목요일 17:28 (Thu Nov 10 17:28:02 2022)에 마지막으로 수정되었음을 알 수 있습니다. - 코드 줄#17- 파일 수정에 대한 정보를 제공하는 것과 동일한 작업을 수행하지만 이를 나타내는 형식이 다릅니다.
여기서 수정 시간 가져오기 함수 (path.getmtime(“Entity01.txt”))을 사용합니다. 이제 c time 함수를 사용하는 대신 From Time Stamp 함수 를 사용 하고 날짜 시간 객체를 구성할 것입니다. 출력에서 파일 수정 시간 세부 정보가 다른 형식으로 인쇄된 것을 볼 수 있습니다 . 2022-11-10 17:28:02.018214
#
# os 경로 모듈 작업을 위한 예제 파일
import os
from os import path
import datetime
from datetime import date, time, timedelta
import time
def main():
# 수정 시간 가져오기
t = time.ctime(path.getmtime("Entity01.txt.bak"))
print(t)
print(datetime.datetime.fromtimestamp(path.getmtime("Entity01.txt.bak")))
if __name__ == "__main__":
main()
요약 :
- 기존 파일의 복사본을 만들려면 shutil.copy(src,dst)
- 파일 권한, 수정 시간 또는 메타 데이터 정보 와 같은 원본 파일의 모든 정보를 코드를 사용하여 복제 파일에 복사하려면 shutil.copystat(src,dst)
반응형
'초보자를 위한 Python > 6. Python 파일처리' 카테고리의 다른 글
6.6 파이썬 예외 처리: try, catch, finally & raise (0) | 2022.11.16 |
---|---|
6.5 파이썬으로 압축 파일(zip, tar) 만들기 (0) | 2022.11.15 |
6.4 파이썬 파일이름 폴더이름 바꾸기 os.rename() (0) | 2022.11.14 |
6.2 파일 존재여부 확인 : 디렉토리 존재여부 확인법 (0) | 2022.11.10 |
6.1 파이썬에서 txt 파일을 생성하고 쓰는 방법 (0) | 2022.11.10 |
댓글