[파이썬] 파일의 디렉토리 내 파일 변경사항 확인

파이썬을 사용하여 특정 디렉토리 내의 파일 변경사항을 감지하고 확인하는 방법은 매우 유용합니다. 이 기능을 활용하면 파일 시스템에서 발생하는 변경사항을 모니터링할 수 있으며, 이를 통해 파일의 생성, 수정, 삭제 등의 이벤트를 감지할 수 있습니다. 이러한 파일 변경사항을 확인하는 방법을 알아보겠습니다.

watchgod 라이브러리 설치

watchgod는 파일 변경 이벤트를 모니터링하기 위한 파이썬 라이브러리입니다. 파일의 디렉토리를 감시하고 파일 변경사항을 알려주는 기능을 제공합니다.

watchgod를 설치하기 위해 다음 명령을 사용합니다:

pip install watchgod

파일 변경사항 감지하기

import os
from watchgod import watch

# 감시할 디렉토리 경로
dir_path = '/path/to/directory'

# 파일 변경사항 모니터링
for changes in watch(dir_path):
    for change_type, file_path in changes:        
        if change_type == 'created':
            print(f"새로운 파일이 생성되었습니다: {file_path}")
        elif change_type == 'modified':
            print(f"파일이 수정되었습니다: {file_path}")
        elif change_type == 'deleted':
            print(f"파일이 삭제되었습니다: {file_path}")

위의 예시 코드에서는 watchgod를 사용하여 ‘/path/to/directory’ 디렉토리의 파일 변경사항을 모니터링하고 있습니다. 파일 변경시 해당 이벤트 유형과 파일 경로를 출력하도록 설정되어 있습니다.

실행하기

위의 예시 코드를 작성한 후, python file_changes.py 명령을 실행하여 파일 변경사항을 실시간으로 감지할 수 있습니다. 디렉토리 내에 새로운 파일이 생성되거나 기존 파일이 수정 또는 삭제되면 해당 정보가 콘솔에 출력됩니다.

추가 사용 예시

파일 변경사항을 감지하여 특정 작업을 수행하는데 활용할 수 있습니다. 다음은 파일 변경에 대한 예시입니다:

import os
from watchgod import watch

def process_file(file_path):
    # 파일 처리 로직
    print(f"파일 처리: {file_path}")

dir_path = '/path/to/directory'

for changes in watch(dir_path):
    for change_type, file_path in changes:        
        if change_type == 'created':
            print(f"새로운 파일이 생성되었습니다: {file_path}")
            process_file(file_path)
        elif change_type == 'modified':
            print(f"파일이 수정되었습니다: {file_path}")
            process_file(file_path)
        elif change_type == 'deleted':
            print(f"파일이 삭제되었습니다: {file_path}")

위의 예시 코드에서는 파일이 생성되거나 수정될 때마다 process_file() 함수를 호출하여 해당 파일을 처리하는 로직을 수행합니다. 파일 변경사항을 모니터링하는 동안 변경될 때마다 해당 파일을 처리할 수 있도록 활용할 수 있습니다.

이와 같이 파일의 디렉토리 내 파일 변경사항을 확인하는 방법은 파이썬을 사용하여 파일 시스템 변경사항을 감지하는 기능을 제공합니다. 이를 통해 실시간으로 파일의 생성, 수정, 삭제 등의 이벤트를 감지하고 원하는 작업을 수행할 수 있습니다.