我使用 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,
)
关于python - 使用 Python 的文件监视器中出现 ValueError ("empty pattern"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66225013/