编写Python脚本,监控这个文件夹中文件的变动情况,要求: 1. 有文件或目录被删除时,提示文件或目录被删除 2. 当在这个文件夹下建立文件或文件夹时,提示有新的文件或文件夹建立 3. 当文件或文件夹被移动时,提示文件或文件夹被移动
时间: 2023-08-16 22:09:34 浏览: 215
可以使用Python的watchdog库来实现文件夹监控功能。以下是一个示例代码:
```python
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_created(self, event):
if event.is_directory:
print(f"新的文件夹建立:{event.src_path}")
else:
print(f"新的文件建立:{event.src_path}")
def on_deleted(self, event):
if event.is_directory:
print(f"文件夹被删除:{event.src_path}")
else:
print(f"文件被删除:{event.src_path}")
def on_moved(self, event):
if event.is_directory:
print(f"文件夹被移动:{event.src_path} -> {event.dest_path}")
else:
print(f"文件被移动:{event.src_path} -> {event.dest_path}")
if __name__ == "__main__":
path = "/path/to/folder" # 监控的文件夹路径
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()
```
在上面的代码中,我们首先定义了一个`MyHandler`类,继承自`FileSystemEventHandler`类,它包含了三个方法,分别对应文件/文件夹的创建、删除和移动事件。
然后,在`__main__`函数中,我们指定要监控的文件夹路径、创建一个`MyHandler`对象、创建一个`Observer`对象,并使用`schedule`方法将`MyHandler`对象绑定到`Observer`对象上。最后,我们启动`Observer`对象并进入一个无限循环,直到用户按下`Ctrl+C`停止程序。
阅读全文