Saya baru beberapa minggu belajar python tanpa latar belakang pemrograman sebelumnya, jadi saya minta maaf atas ketidaktahuan saya..
Saya mencoba menggunakan kombinasi modul untuk memantau folder untuk file baru (pengawas), memperingatkan peristiwa apa pun (modul logging), dan kemudian mengirimkan peringatan ke email saya (smtplib).
Saya telah menemukan contoh yang sangat bagus di sini: Bagaimana cara menjalankan fungsi ketika ada perubahan pada direktori dengan Python Watchdog?
Namun, saya terjebak saat mencoba menyimpan informasi logging sebagai variabel untuk digunakan dalam pesan email saya. Saya bertanya-tanya apakah saya perlu menampilkan informasi logging ke file dan kemudian membaca baris untuk digunakan sebagai variabel.
Bagaimanapun, inilah yang aku punya. Bantuan apa pun dihargai. Sementara itu saya akan melanjutkan ke Google.
import sys
import time
import logging
from watchdog.observers import Observer
from watchdog.events import LoggingEventHandler
import smtplib
class Event(LoggingEventHandler):
def on_any_event(self, event):
logMsg = logging.basicConfig(level=logging.INFO,
format='%(asctime)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S')
sender = '[email protected]'
receiver = '[email protected]'
message = """From: No Reply <[email protected]>
TO: Test User <[email protected]>
Subject: Folder Modify Detected
The following change was detected: """ + str(logMsg)
mail = smtplib.SMTP('mailServer.myDomain.com', 25)
mail.ehlo()
mail.starttls()
mail.sendmail(sender, receiver, message)
mail.close()
if __name__ == "__main__":
path = sys.argv[1] if len(sys.argv) > 1 else '.'
event_handler = Event()
observer = Observer()
observer.schedule(event_handler, path, recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()