通过watchdog监听C:\sui\event\m文件夹下的变化,但我修改的是C:\sui\event\m\a1\b1\1.txt文件怎样能获取到a1这个目录
时间: 2023-08-09 08:10:22 浏览: 84
如果你希望通过watchdog监听`C:\sui\event\m`文件夹下的变化,并且在修改`C:\sui\event\m\a1\b1\1.txt`文件时获取到`a1`目录,你可以在事件处理程序中使用`os.path.relpath()`方法来获取相对路径。
以下是一个示例代码片段,演示了如何通过watchdog获取到`a1`目录:
```python
import os
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
class MyHandler(FileSystemEventHandler):
def on_modified(self, event):
# 获取相对路径
relative_path = os.path.relpath(event.src_path, 'C:\\sui\\event\\m')
# 获取顶级目录
top_directory = relative_path.split(os.path.sep)[0]
# 打印顶级目录
print(f"Top directory: {top_directory}")
# 创建一个Observer对象并启动监听
observer = Observer()
event_handler = MyHandler()
observer.schedule(event_handler, path='C:\\sui\\event\\m', recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
```
在上述代码中,我们使用`os.path.relpath()`方法来获取相对路径,然后通过`split()`方法将路径分割为各个部分。最后,我们可以提取顶级目录,并将其打印出来。
请确保在`observer.schedule()`方法中设置正确的监听路径(即`C:\sui\event\m`),以便正确监听文件夹下的变化。
希望这能解决你的问题!如果还有其他疑问,请随时提问。
阅读全文