python - 使用 Python 的文件监视器中出现 ValueError ("empty pattern")

标签 python python-3.x exception monitor pathlib

我使用 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/

相关文章:

python - py2exe - fatal error : Could not locate script

Python 数学运算顺序

exception - 什么是一元错误?

c# - 如何防止 WebBrowser 控件捕获异常并将它们显示为脚本错误?

c++ - 中断 NaN 或 infs

python - 同时 .replace 功能

python FPDF 大小不正确

python - 使用 set() 删除重复的 url python BeautifulSoup 会破坏 url

python - Django - 生成最短的随机 slug

python - yaml 锚定义在 PyYAML 中加载