파이썬에서 백업 파일 및 임시 파일 생성하는 방법
글 작성자: _rian

가끔가다가 파일을 읽고 저장하는 과정에서 오류가 발생할 시 파일이 손상되어 더이상 사용할 수 없게 되는 경우들이 발생할 수 있다.
이를 위해 기존 파일에 대한 백업파일을 생성하고, 임시 파일에서 write 작업을 한뒤 기존 파일로 교체해주는 작업을 해줄 수 있다.
1. 백업 파일 생성하는 방법
파이썬의 shutil
라이브러리 내 .copy
함수를 이용하여 백업 파일을 생성하면 된다.
import shutil path = '/path/to/data.pkl' # 임시 및 백업 경로 설정 temp_path = path + '.temp' backup_path = path + '.backup' # 백업 파일 생성 shutil.copy(path, backup_path)
2. 임시 파일 생성 후 기존 파일로 교체하는 방법
임시파일로 변경된 저장 결과를 저장하고 이를 기존 파일로 교체하기 위해선 os.replace()
를 사용하면 된다.
import os import pickle data = {} # ... # 임시 파일로 저장 with open(temp_path, "wb") as file: pickle.dump(data, file) # 임시 파일을 원본 파일로 교체 os.replace(temp_path, path)
3. 오류 발생 시 원본 파일을 백업에서 복구
오류가 발생해 파일이 정상적으로 종료되지 않았다면 아래와 같이 백업된 파일 경로에서 불러오면 된다.
# backup된 파일을 기존 파일로 복구 shutil.copy(backup_path, path)
4. 임시 파일 or 백업 파일 정리하기 (삭제하기)
백업된 파일과 임시 파일을 제거하고 싶다면 os.remove()
를 사용하면 된다.
if os.path.exists(temp_path): os.remove(temp_path) if os.path.exists(backup_path): os.remove(backup_path)
'Computer Engineering > Python' 카테고리의 다른 글
파이썬에서 효율적으로 메모리 관리하는 방법 - del, 제너레이터, 가비지컬렉션 (0) | 2023.07.13 |
---|---|
[Pythonic한 코드 작성하기] 파이썬의 자식 프로세스 관리 모듈, subprocess (0) | 2021.04.21 |
[Pythonic한 코드 작성하기] Python의 가변 인수(*args)와 키워드 인수에 대해 파헤쳐보자 (0) | 2021.02.25 |
[Pythonic한 코드 작성하기] 리스트 컴프리헨션 (list comprehension) (0) | 2021.02.03 |
파이썬에서 Generator란? (0) | 2021.01.27 |
댓글
이 글 공유하기
다른 글
-
파이썬에서 효율적으로 메모리 관리하는 방법 - del, 제너레이터, 가비지컬렉션
파이썬에서 효율적으로 메모리 관리하는 방법 - del, 제너레이터, 가비지컬렉션
2023.07.13 -
[Pythonic한 코드 작성하기] 파이썬의 자식 프로세스 관리 모듈, subprocess
[Pythonic한 코드 작성하기] 파이썬의 자식 프로세스 관리 모듈, subprocess
2021.04.21 -
[Pythonic한 코드 작성하기] Python의 가변 인수(*args)와 키워드 인수에 대해 파헤쳐보자
[Pythonic한 코드 작성하기] Python의 가변 인수(*args)와 키워드 인수에 대해 파헤쳐보자
2021.02.25 -
[Pythonic한 코드 작성하기] 리스트 컴프리헨션 (list comprehension)
[Pythonic한 코드 작성하기] 리스트 컴프리헨션 (list comprehension)
2021.02.03
댓글을 사용할 수 없습니다.