[파이썬] 파일 경로와 파일 시스템 이벤트 처리

Introduction

In any programming language, handling file paths and file system events is an essential task. Python provides a rich set of libraries and functions to efficiently work with file paths and handle various file system events such as file creation, modification, and deletion. In this blog post, we will explore how to manipulate file paths and efficiently handle file system events using Python.

File Paths in Python

Python provides the os.path module to work with file paths. Some of the commonly used functions in this module include:

Here is an example that demonstrates how to use these functions:

import os

path = os.path.join('/mydir', 'myfile.txt')
print(f'Joined path: {path}')

dirname = os.path.dirname(path)
print(f'Directory name: {dirname}')

basename = os.path.basename(path)
print(f'Base name: {basename}')

exists = os.path.exists(path)
print(f'Path exists: {exists}')

File System Event Handling

Python provides the watchdog library for handling file system events. The watchdog library allows you to monitor a directory for file system events such as file creations, modifications, and deletions. It provides a simple and intuitive API that makes it easy to handle these events.

Here is an example that demonstrates how to use the watchdog library to monitor a directory and handle file system events:

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

class MyHandler(FileSystemEventHandler):
    def on_created(self, event):
        print(f'File created: {event.src_path}')

    def on_modified(self, event):
        print(f'File modified: {event.src_path}')

    def on_deleted(self, event):
        print(f'File deleted: {event.src_path}')

if __name__ == "__main__":
    path = '/mydir'
    event_handler = MyHandler()
    observer = Observer()
    observer.schedule(event_handler, path, recursive=True)
    observer.start()

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

In the above example, we define a custom event handler by subclassing FileSystemEventHandler and override its event handling methods such as on_created(), on_modified(), and on_deleted(). We then create an observer, attach the event handler to the observer, and start monitoring the specified directory for file system events.

Conclusion

Manipulating file paths and handling file system events are common tasks in any programming language. Python provides convenient libraries and functions to simplify these tasks. In this blog post, we explored how to work with file paths using the os.path module and how to handle file system events using the watchdog library.