[파이썬] os 디렉토리 감시: `os.scandir()`

When working with directories in Python, there are often scenarios where you need to monitor changes in a directory. The os module in Python provides a handy method called scandir() that allows you to monitor directories for changes.

Understanding os.scandir()

The os.scandir() function is a part of the standard library in Python. It is used to scan a directory and yield an iterator of DirEntry objects that represent the files and subdirectories within the specified directory.

Example Usage

Here’s an example that demonstrates how to use os.scandir() to monitor a directory and print the names of all the files and directories within it:

import os

def monitor_directory(path):
    with os.scandir(path) as entries:
        for entry in entries:
            if entry.is_file():
                print('File:', entry.name)
            elif entry.is_dir():
                print('Directory:', entry.name)

# Specify the path of the directory you want to monitor
directory_path = 'path_to_directory'

# Start monitoring the directory
monitor_directory(directory_path)

In this example, we define the monitor_directory() function that takes a path parameter representing the directory that we want to monitor. Inside the function, we use the with statement to open the directory and obtain an iterator of DirEntry objects using os.scandir(). We then iterate over each entry and check if it is a file or a directory using the is_file() and is_dir() methods respectively. Finally, we print the name of each file or directory.

Benefits of Using os.scandir()

Conclusion

The os.scandir() method in Python is a powerful tool for monitoring directories and obtaining information about the files and directories within them. It offers efficiency, platform independence, and additional information through the use of DirEntry objects. Consider using os.scandir() in your Python projects whenever you need to monitor and process directory changes.