(2) 编写Python脚本,监控这个文件夹中文件的变动情况,要求: 1. 有文件或目录被删除时,提示文件或目录被删除 2. 当在这个文件夹下建立文件或文件夹时,提示有新的文件或文件夹建立 3. 当文件或文件夹被移动时,提示文件或文件夹被移动
时间: 2023-08-16 10:09:34 浏览: 35
可以使用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`类,重写了`on_created`、`on_deleted`和`on_moved`方法,分别处理文件或目录创建、删除和移动事件,并输出相应的提示信息。
然后我们创建一个`Observer`对象,指定要监控的文件夹路径和事件处理器对象,启动监控并进入无限循环,直到收到键盘中断信号(即用户按下 Ctrl+C)。最后停止监控并退出程序。