[파이썬] 파일 시스템 관리 및 모니터링 자동화

파일 시스템은 운영 체제에서 파일과 폴더를 저장하고 관리하는 방식을 말합니다. 파일 시스템은 운영 체제의 핵심 기능 중 하나이며, 파일 및 폴더의 생성, 수정, 삭제 등 다양한 작업을 수행할 수 있습니다.

파이썬은 강력한 파일 시스템 관리 및 모니터링 기능을 제공하는 다양한 라이브러리를 가지고 있습니다. 이 블로그 포스트에서는 몇 가지 유용한 Python 라이브러리와 예제 코드를 소개하고 파일 시스템 관리 및 모니터링을 자동화하는 방법을 알아보겠습니다.

1. os 모듈을 사용한 파일 및 폴더 관리

Python의 내장 모듈인 os는 파일 및 폴더 관리에 유용한 함수들을 제공합니다. 몇 가지 주요 기능은 다음과 같습니다:

다음은 os 모듈을 사용하여 파일을 생성하고 삭제하는 예제 코드입니다:

import os

# 파일 생성
with open('example.txt', 'w') as file:
    file.write('Hello, World!')

# 파일 삭제
os.remove('example.txt')

위 코드는 ‘example.txt’라는 파일을 생성하고 내용을 쓴 뒤, 파일을 삭제하는 과정을 보여줍니다.

2. shutil 모듈을 사용한 파일 및 폴더 복사, 이동

shutil 모듈은 파일 및 폴더의 복사, 이동 등 다양한 작업을 수행할 수 있는 함수들을 제공합니다.

다음은 shutil 모듈을 사용하여 파일을 복사하고 폴더를 이동하는 예제 코드입니다:

import shutil

# 파일 복사
shutil.copy('source.txt', 'destination.txt')

# 폴더 이동
shutil.move('folder', 'new_folder')

위 코드는 ‘source.txt’ 파일을 ‘destination.txt’로 복사하고, ‘folder’ 폴더를 ‘new_folder’로 이동시킵니다.

3. glob 모듈을 사용한 파일 검색

glob 모듈은 특정 패턴과 일치하는 파일들을 검색하는 데 사용됩니다. 이 모듈을 사용하면 원하는 파일들을 쉽게 필터링할 수 있습니다.

다음은 glob 모듈을 사용하여 *.txt 확장자를 가진 모든 파일을 검색하는 예제 코드입니다:

import glob

# *.txt 확장자를 가진 파일 검색
files = glob.glob('*.txt')

# 검색된 파일 출력
for file in files:
    print(file)

위 코드는 현재 디렉토리에서 *.txt 확장자를 가진 파일들을 검색하고, 검색된 파일들을 출력합니다.

4. watchdog 모듈을 사용한 파일 시스템 모니터링

watchdog 모듈은 파일 시스템의 변경 사항을 모니터링하는 데 사용됩니다. 이 모듈을 사용하면 파일 생성, 수정, 삭제 등의 이벤트를 캐치하고 이에 대한 작업을 수행할 수 있습니다.

다음은 watchdog 모듈을 사용하여 파일 시스템 변경을 감지하고 변경 사항을 출력하는 예제 코드입니다:

import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

# 파일 시스템 이벤트 핸들러 클래스 정의
class MyHandler(FileSystemEventHandler):
    def on_any_event(self, event):
        print(f'{event.event_type}: {event.src_path}')

# Observer 객체 생성 및 이벤트 핸들러 등록
observer = Observer()
event_handler = MyHandler()
observer.schedule(event_handler, path='.', recursive=True)

# Observer 시작
observer.start()

try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    observer.stop()

# Observer 종료
observer.join()

위 코드는 현재 디렉토리에서 파일 시스템 변경을 감지하고, 변경된 파일의 이벤트 유형과 경로를 출력합니다.

이처럼 Python은 다양한 라이브러리를 통해 파일 시스템 관리 및 모니터링을 자동화할 수 있습니다. os, shutil, glob, watchdog 모듈을 활용하여 효율적으로 파일 및 폴더를 관리하고 시스템 변경을 감지하는 방법을 익혀보세요.