regex - Python 看门狗监视通过模式匹配创建新文件
问题描述
我还在学习 Python,所以我先道歉。我正在尝试编写一个监视程序来监视与特定模式匹配的文件的创建。我正在使用带有一些代码的看门狗来让它监视目录。
我不太明白如何让观察者监视与模式匹配的文件名。我已经regexes=[]
用我认为可能有用的方法编辑了该字段,但我没有运气。
以下是可能出现的文件示例:Hires For Monthly TM_06Jan_0946.CSV
我可以让观察者告诉我何时在目录中创建了 .CSV,但我无法让它只告诉我何时Hires.*\.zip
创建。
我已经检查了这个链接但没有运气 如何正确运行看门狗的 RegexMatchingEventHandler?
这是我的代码:
import time
import watchdog.events
from watchdog.observers import Observer
from watchdog.events import RegexMatchingEventHandler
import re
import watchdog.observers
import time
import fnmatch
import os
class Handler(watchdog.events.RegexMatchingEventHandler):
def __init__(self):
watchdog.events.RegexMatchingEventHandler.__init__(self, regexes=['.*'], ignore_regexes=[], ignore_directories=False, case_sensitive=False)
def on_created(self, event):
print("Watchdog received created event - % s." % event.src_path)
def on_modified(self, event):
print("Watchdog received modified event - % s." % event.src_path)
if __name__ == "__main__":
src_path = r"C:\Users\Downloads"
event_handler = Handler()
observer = watchdog.observers.Observer()
observer.schedule(event_handler, path=src_path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join() ```
解决方案
'.*'
正则表达式起作用而Hires.*\.zip
正则表达式不起作用的原因是看门狗试图将完整路径与正则表达式匹配。就正则表达式而言:r'Hires.*\.zip'
不会为您提供与 "C:\Users\Downloads\Hires blah.zip" 的完全匹配
相反,请尝试:
def __init__(self):
watchdog.events.RegexMatchingEventHandler.__init__(
self, regexes=[r'^.*?\.cvs$', r'.*?Hires.*?\.zip'],
ignore_regexes=[], ignore_directories=False, case_sensitive=False)
这将与所有 cvs 文件匹配,并且 zip 文件以“Hires”开头。'.*?'
与“C:\Users\Downloads”匹配,其余确保文件类型、文件名等。
推荐阅读
- pyspark - spark如何应用“仅正确”加入?
- r - 如何将导入的图像与其他 R 图结合起来?
- systemd - 如何在计算机进入之前让 systemd 自动设置 /sys/power/image_size(为 0)
- azure-active-directory - 如何强制用户使用 MSAL 角度的两因素身份验证?
- reactjs - React-Player 无法正确调整视频大小
- python - 在 python 中使用自定义替换创建 Vigenere 样式加密
- java - 如何找到两个数字之间的位移
- mongodb - 如何使用 pymongo2.7 获取统计信息?
- vue.js - 在 vue 2 的 select2 指令中附加一个选项并使其成为选定值
- python - 将长文本解析为熊猫数据框