[파이썬] shutil로 파일 시스템의 오류 탐지 및 복구하기

파일 시스템은 운영 체제에서 파일 및 폴더를 저장하고 관리하는 역할을 합니다. 하지만 때로는 파일 시스템에 오류가 발생하여 데이터를 손실할 수 있습니다. 이러한 오류를 탐지하고 복구하는 것은 매우 중요합니다.

Python에서는 shutil 모듈을 사용하여 파일 및 폴더의 복사, 이동, 이름 변경 등 다양한 작업을 수행할 수 있습니다. 이 모듈을 사용하여 파일 시스템의 오류를 탐지하고 복구하는 방법에 대해 알아보겠습니다.

파일 복사하기

파일 시스템 오류를 탐지하고 복구하기 위해 먼저 shutil 모듈을 사용하여 파일을 복사하는 방법을 알아보겠습니다. 다음은 shutil.copy() 함수를 사용하여 파일을 복사하는 예제 코드입니다.

import shutil

def backup_file(source_file, destination):
    try:
        shutil.copy(source_file, destination)
        print("파일이 성공적으로 복사되었습니다.")
    except IOError as e:
        print("파일 복사 중 오류가 발생하였습니다:", str(e))

source_file = "data.txt"
destination = "backup/data_backup.txt"

backup_file(source_file, destination)

위의 예제에서는 data.txt라는 파일을 backup/data_backup.txt로 복사하고 있습니다. shutil.copy() 함수를 호출하면 파일이 복사되고, 복사 과정에서 오류가 발생하면 IOError 예외가 발생합니다.

파일 이동하기

파일 시스템의 오류 탐지와 복구를 위해 shutil 모듈을 사용하여 파일을 이동하는 방법도 알아보겠습니다. shutil.move() 함수를 사용하여 파일을 이동할 수 있습니다. 다음은 파일 이동의 예제 코드입니다.

import shutil

def move_file(source_file, destination):
    try:
        shutil.move(source_file, destination)
        print("파일이 성공적으로 이동되었습니다.")
    except IOError as e:
        print("파일 이동 중 오류가 발생하였습니다:", str(e))

source_file = "data.txt"
destination = "documents/data.txt"

move_file(source_file, destination)

위의 예제에서는 data.txt라는 파일을 documents 폴더로 이동하고 있습니다. shutil.move() 함수를 호출하여 파일을 이동하고, 이동 과정에서 오류가 발생하면 IOError 예외가 발생합니다.

파일 삭제하기

파일 시스템에서 오류를 복구하기 위해 파일을 삭제하는 방법도 중요합니다. shutil 모듈에는 os.remove() 함수를 사용하여 파일을 삭제하는 기능이 있습니다. 다음은 파일 삭제의 예제 코드입니다.

import os

def delete_file(file_path):
    try:
        os.remove(file_path)
        print("파일이 성공적으로 삭제되었습니다.")
    except OSError as e:
        print("파일 삭제 중 오류가 발생하였습니다:", str(e))

file_path = "data.txt"

delete_file(file_path)

위의 예제에서는 data.txt 파일을 os.remove() 함수를 사용하여 삭제하고 있습니다. 파일 삭제 과정에서 오류가 발생하면 OSError 예외가 발생합니다.

폴더 생성하기

파일 시스템의 오류 복구를 위해 폴더를 생성하는 것도 중요한 작업입니다. shutil 모듈의 os.mkdir() 함수를 사용하여 폴더를 생성할 수 있습니다. 다음은 폴더 생성의 예제 코드입니다.

import os

def create_folder(folder_path):
    try:
        os.mkdir(folder_path)
        print("폴더가 성공적으로 생성되었습니다.")
    except OSError as e:
        print("폴더 생성 중 오류가 발생하였습니다:", str(e))

folder_path = "documents"

create_folder(folder_path)

위의 예제에서는 documents 폴더를 os.mkdir() 함수를 사용하여 생성하고 있습니다. 폴더 생성 과정에서 오류가 발생하면 OSError 예외가 발생합니다.


파일 시스템의 오류를 탐지하고 복구하는 작업은 데이터 손실을 예방하기 위해 필수적입니다. Python의 shutil 모듈을 사용하여 파일의 복사, 이동, 삭제, 폴더 생성 등 다양한 작업을 수행할 수 있으므로, 이를 활용하여 파일 시스템 오류를 감지하고 적절한 조치를 취할 수 있습니다.