欢迎访问宙启技术站
智能推送

实时监控文件夹中的新文件:Python的watch()函数实现

发布时间:2023-12-15 00:23:09

在Python中,可以使用watchdog库来实时监控文件夹中的新文件。watchdog库是一个跨平台的Python库,用于监控文件系统事件。

首先,我们需要安装watchdog库。可以使用pip命令来安装:

pip install watchdog

安装完成后,我们可以开始使用watchdog来实现实时监控文件夹中的新文件。

要监控文件夹中的新文件,我们需要创建一个监控器类,并实现相应的处理方法。以下是一个简单的监控器类的示例:

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

class MyHandler(FileSystemEventHandler):
    def on_created(self, event):
        if not event.is_directory:
            print("New file created: %s" % event.src_path)

# 创建一个Observer对象,并指定要监控的文件夹和处理类
observer = Observer()
observer.schedule(MyHandler(), path='.', recursive=False)

# 开始监控
observer.start()

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

# 等待监控线程终止
observer.join()

在上面的代码中,我们创建了一个继承自FileSystemEventHandler的自定义处理类MyHandler。在MyHandler中,我们实现了on_created方法,这个方法会在新文件创建时被触发。方法中打印了新文件的路径。

然后,我们创建了一个Observer对象,并使用schedule方法将监控的文件夹和处理类MyHandler关联起来。

最后,我们使用start方法启动监控,并使用join方法等待监控线程终止。

使用上面的代码,我们可以实时监控指定文件夹中的新文件。只要有新文件创建,就会触发on_created方法,并打印新文件的路径。

以下是一个使用例子,监控名为"test_folder"的文件夹:

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

class MyHandler(FileSystemEventHandler):
    def on_created(self, event):
        if not event.is_directory:
            print("New file created: %s" % event.src_path)

# 创建一个Observer对象,并指定要监控的文件夹和处理类
observer = Observer()
observer.schedule(MyHandler(), path='test_folder', recursive=False)

# 开始监控
observer.start()

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

# 等待监控线程终止
observer.join()

在上面的例子中,我们监控的文件夹名为"test_folder",当在该文件夹中创建新文件时,会打印新文件的路径。

以上就是使用Python的watchdog库实时监控文件夹中的新文件的方法和示例。希望对你有帮助!