问题描述
我使用 python 目录进行监控以在文件创建时收到警报。
File .....watchdog\utils\patterns.py,line 30 in <genexpr>
return (any(path(match(p) for p in include_patterns)
File"c:\python3\lib\pathlib.py",line 921,in match
raise ValueError("empty pattern")
ValueError: empty pattern
这是python中的代码。
import time
from watchdog.observers import Observer
from watchdog.events import PatternMatchingEventHandler
def on_created(event):
with open(event.src_path,'r') as f:
data=f.read()
print(data)
print(f"hey,{event.src_path} has been created!")
def on_deleted(event):
print(f"what the f**k! Someone deleted {event.src_path}!")
def on_modified(event):
print(f"hey buddy,{event.src_path} has been modified")
def on_moved(event):
print(f"ok ok ok,someone moved {event.src_path} to {event.dest_path}")
if __name__ == "__main__":
patterns = "*.csv"
ignore_patterns = ""
ignore_directories = False
case_sensitive = True
my_event_handler = PatternMatchingEventHandler(patterns,ignore_patterns,ignore_directories,case_sensitive)
my_event_handler.on_created = on_created
my_event_handler.on_deleted = on_deleted
my_event_handler.on_modified = on_modified
my_event_handler.on_moved = on_moved
path = "t/"
go_recursively = True
my_observer = Observer()
my_observer.schedule(my_event_handler,path,recursive=go_recursively)
my_observer.start()
time.sleep(10)
如何修复异常?
解决方法
您需要传入模式列表,而不是单个字符串。和 None
,不是空字符串。
my_event_handler = PatternMatchingEventHandler(
patterns=["*"],ignore_patterns=None,# pass in `None` in case of no ignores
ignore_directories=False,case_sensitive=True,)