实时监听文件变化的Python脚本(watchdog.observersObserver())
发布时间:2024-01-10 15:18:40
实时监听文件变化是指程序能够即时检测到文件的变化,例如文件的创建、修改或删除,并且能够立即对这些变化做出响应。在Python中,可以使用watchdog库来实现这个功能。
首先,需要安装watchdog库。可以使用以下命令在命令行中进行安装:
pip install watchdog
接下来,我们可以编写一个脚本来实现文件变化的监听,并在每次文件变化时输出相应的信息。下面是一个示例:
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
if not event.is_directory:
print(f"File {event.src_path} has been modified")
def on_created(self, event):
if not event.is_directory:
print(f"File {event.src_path} has been created")
def on_deleted(self, event):
if not event.is_directory:
print(f"File {event.src_path} has been deleted")
if __name__ == "__main__":
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()
以上代码创建了一个自定义的FileSystemEventHandler类,并重写了其on_modified、on_created和on_deleted方法。接着,创建一个Observer对象和一个MyHandler对象,并将MyHandler对象绑定到Observer对象上。然后,通过调用start方法启动监听。
当文件被修改、创建或删除时,相应的方法会被调用,我们通过print语句在控制台输出相应的信息。
需要注意的是,path参数指定要监听的文件夹的路径,可以根据需要进行修改。此外,recursive参数指定是否递归监听子文件夹,默认值为False,若要监听子文件夹,请将其设置为True。
最后,在主程序中使用一个try-except语句来保证监听的运行,并在用户按下Ctrl+C时停止监听。
运行以上脚本后,可以尝试在指定的文件夹中进行文件的修改、创建或删除操作,控制台会即时输出相应的信息。
这就是一个简单的实时监听文件变化的Python脚本,希望对你有帮助!
