python watchdog观察某些文件但所有目录

时间:2019-09-10 11:51:35

标签: python python-watchdog

我需要观察类型为.tsv的文件,但也需要观察directories上的所有事件。

当前,使用patterns参数忽略目录。

我希望它观察directories上的每个事件。

这是我的代码:

import time, sys
from watchdog.observers import Observer  
from watchdog.events import PatternMatchingEventHandler
from datetime import datetime
import os
class MyHandler(PatternMatchingEventHandler):
    patterns = ["*.tsv"]
    ignore_patterns = []
    ignore_directories = False
    case_sensitive = True

def process(self, event):
    log_file = open('log.txt', 'a')
    path = os.path.join(event.src_path)
    line = path + "\t" + event.event_type + "\t" + str(datetime.now()) + "\n"
    log_file.write(line)
    log_file.close()

def on_created(self, event):
    self.process(event)

if __name__ == '__main__':
    args = sys.argv[1:]
    observer = Observer()
    observer.schedule(MyHandler(), path=args[0] if args else '.', recursive=True)
    observer.start()

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

observer.join()

怎么办?

1 个答案:

答案 0 :(得分:1)

是的。无需使用模式,只需配置目录,并在触发事件时检查src_path以查看它是否是.tsv文件,那么您可以在此时实现所需的任何逻辑...

相关问题