Я пытаюсь научиться использовать утилиту сторожевого таймера в окнах.Watchdog на windows с python3.4
Я ознакомился с основными примерами, доступными в Google. Я пытаюсь написать сценарий, который будет контролировать данный каталог, а затем будет отправлять почту, если какой-либо подкаталог создан с файлом с именем 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("[email protected]","[email protected]")
message = "New Build has been create with Chnage Number %d" %int(changeNumber[0])
server.sendmail("[email protected]","[email protected]",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'
я обеспечиваю правильный путь в то время как envoking observer.schedule, я не понимаю, почему я получаю это.
Пожалуйста, помогите мне узнать, чего у меня нет.
Это помогло Спасибо, но мне пришлось импортировать, что DirCreatedEvent отдельно для isinstance работать. – LearningNinja