我正在尝试学习在 Windows 上使用看门狗实用程序。
我已经浏览了谷歌上可用的基本示例。我正在尝试编写一个脚本,它将监视给定目录,然后如果创建了任何具有名为 version 的文件的子目录,则将发送邮件。
import time
from watchdog.observers import Observer
from watchdog.events import DirCreatedEvent
import re
import smtplib
class MyHandler(DirCreatedEvent):
def process(self,event):
fileTocheck = "Version"
with open(event.src_path+"\\"+fileTocheck) as version:
chngstring = version.read()
changeNumber = re.findall(r"\D(\d{5})\D",chngstring)
if not changeNumber:
return
server = smtplib.SMTP('smtp.gmail.com',587)
server.login("xyz@gmail.com","abc@123")
message = "New Build has been create with Chnage Number %d" %int(changeNumber[0])
server.sendmail("xyz@gmail.com","abc@gmail.com",message)
def on_created(self,event):
self.process(event)
if __name__ == '__main__':
observer = Observer()
path = "D:\\"
observer.schedule(MyHandler(),path,recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
问题是,每当我运行脚本时,我都会收到此错误:
>>> ================================ RESTART ================================
>>>
Traceback (most recent call last):
File "C:/Users/Prince/Desktop/KeepLearing/Watchdog.py", line 37, in <module>
observer.schedule(MyHandler(),path,path,recursive=True)
TypeError: __init__() missing 1 required positional argument: 'src_path'
我在调用observer.schedule 时提供了正确的路径,我不明白为什么会这样。
请帮我找出我缺少的东西。