如何处理python脚本错误并通过电子邮件发送它们

时间:2018-11-12 10:29:15

标签: python python-3.x

我对Python比较陌生。

我有一个Python脚本,该脚本从Internet上获取一些信息,然后插入数据库中。我想每天使用cron运行它,并让脚本在完成后每天向我发送一封电子邮件。

我已经弄清楚了电子邮件部分,它可以用来发送经过时间和插入数据库中的总记录,如下所示:

在脚本开头:

records_inserted = 0
t1_start = time.perf_counter()

并在脚本末尾:

t1_stop = time.perf_counter()

msg = EmailMessage()

msg.set_content("Total elapsed time: %.1f [min]" % ((t1_stop-t1_start)/60) + 
"\n\nThe total number of records inserted in the database was: " + 
str(records_inserted))

email_from = “xxxxxxx@gmail.com"
email_to = “xxxxx@xxxx.com"
gmail_password = “xxxxxx”

msg['From'] = email_from
msg['To'] = email_to
msg['Subject'] = “Script executed"

server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(email_from, gmail_password)
server.send_message(msg)

server.quit()

现在,如果网页上的某些内容因中断或更改而从中获取,或者由于任何原因出现任何错误,我希望在日常电子邮件中也能看到这些错误。

如果在执行过程中出现一个或多个错误,并且将错误编号和描述写为电子邮件正文的一部分,那么处理和存储(也许是数组)的最佳方法是什么,所以我尽快知道并可以根据需要进行查看和更正?

谢谢!

1 个答案:

答案 0 :(得分:1)

@fernandezcuesta在评论中提出的解决方案对我来说很好。

我将所有“完成任务”的代码包装到try: except Exception as _ex:中,并将repr(_ex)附加到我的邮件中